Пока я занимался обработкой изображений, я обнаружил, что GD и Imagick в PHP не изменяют размер изображения до идентичного уровня цвета в пикселях, что в большинстве случаев было не нужно. Теперь, на всякий случай, мне нужно изображение любого размера для масштабирования до 256 * 256.
Чтобы убедиться, что результаты ТЕСТА непротиворечивы, я использовал изображение 256 * 256 и изменил его размер до собственного размера.
что я пытался:
imagecopyresized($new, $img, 0, 0, $x, 0, $width, $height, $w, $h); //256 , 256
а также
$compression_type = imagick::COMPRESSION_NO;
$images_ima = new Imagick($image_path); //$image_path = path to image...
$images_ima->setImageCompression($compression_type);
$images_ima->setImageCompressionQuality(100);
$images_ima->sampleImage($X_SIZE,$Y_SIZE); // 256 ,256
$images_ima->writeImages($dest_path, true); //destination path
ни один из них не работал, если я сравню вывод с исходным изображением, он будет выглядеть примерно так:
похоже, что функции, которые я использовал, передискретизируют изображение, поскольку различия в значении RGB между обоими изображениями невелики
я могу добиться одинакового изменения размера пикселя в пиксель с 256 * 256 до 256 * 256 в фотошопе, предварительном просмотре OSX и даже Pixelformer. мне было интересно, как это можно сделать в PHP?