Пока я занимался обработкой изображений, я узнал, что GD и Imagick в PHP не изменяют размер изображения до одинакового уровня пикселя, что в большинстве случаев не требуется. Теперь в случае, мне нужно изображение от любого измерения до масштаба до 256 * 256Изменение размера изображения в PHP
Чтобы убедиться, что результаты TEST согласованы, я использовал изображение 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 в Photoshop, предварительного просмотра OSX и даже Pixelformer. Мне было интересно, как это можно сделать с PHP?
Почему вы не просто используете imagecopy, если обнаруживаете, что размеры пикселей идентичны? –
Я не уверен, что полностью понимаю ваш вопрос, но каждая библиотека обработки изображений обычно * не * использует один и тот же точный алгоритм. Независимо от ваших тестов, они не могут полагаться на такое предположение. –