Как сделать рисунки уникальными для ПС без видимой потери качества?
Ниже представляю вам функцию на PHP для рандомизации изображений. С ней можно сгенерироваь 1000 копий одного и того же рисункаа ПС все их будут считать различными.Из преобразований с изображением применяются:
рандомное обрезание (crop)
рандомный ресайз
рандомное добавление шумов
function randomizeimage( $pathtoimg ) {
$src = imagecreatefromjpeg($pathtoimg);
$w_src = imagesx($src);
$h_src = imagesy($src);
$dt = mt_rand(5,25);
$dl = mt_rand(5,25);
$db = mt_rand(5,25);
$dr = mt_rand(5,25);
$img = imagecreatetruecolor( $w_src - $dl - $dr, $h_src - $dt - $db );
imagecopy($img, $src, 0, 0, $dl, $dt, $w_src - $dl - $dr, $h_src - $dt - $db);
$w_img1 = $w_src - $dl - $dr + ( (mt_rand(0,1)==0)?-1:1 ) * min( mt_rand(50,100), mt_rand(20,round( ($w_src - $dl - $dr)/2 ) ));
$h_img1 = round( ($h_src - $dt - $db) * $w_img1 / ($w_src - $dl - $dr) );
$img1 = imagecreatetruecolor( $w_img1, $h_img1 );
imagecopyresized($img1, $img, 0, 0, 0, 0, $w_img1, $h_img1, $w_src - $dl - $dr, $h_src - $dt - $db);
$count = mt_rand(10,30);
for( $i=0;$i<$count; $i++ ) {
imagesetpixel( $img1, mt_rand(1,$w_img1-1), mt_rand(1, $h_img1-1), imagecolorallocate($img1, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)) );
}
$name = randstr(10).'.jpg';
imagejpeg( $img1, $name );
return $name;
}