Улучшение качества изменений изменений в размере с использованием PHP/GDPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Улучшение качества изменений изменений в размере с использованием PHP/GD

Сообщение Anonymous »

У меня есть клиент с сайтом электронной коммерции (полностью сделанный в PHP/MySQL и т. Д., Так что не Shopify, WordPress или любая другая платформа OpenSource), продавая книги, и они загружают примерно 1500px максимум и шириной 1000px jpeg обложки книги и некоторые внутренние страницы. Это создано профессиональным графическим дизайнером, и он говорит, что он выводит из Photoshop при высоком качестве - результирующие изображения, как правило, имеют размеры от 500 до 1 МБ. Среды и миниатюры трудно прочитать (учитывая, что на этих изображениях есть текст, будучи книгами). < /p>
У них также (недавно) есть сайт Shopify (я думаю, что само построение) для аналогичного диапазона продуктов, и у которых есть изображения аналогичного размера, и когда я сравниваю два, конечно, у них есть точка. Изображения Shopify намного острее, особенно на телефоне. thumbnails are in AVIF
[*]The URL for the images specifies the width, so it appears they resize/convert on the fly from the CDN
[*]They also appear to use CSS scaling

So, I created a test script to read in a directory of sample images, create resized JPEG, WEBP and Файлы AVIF в моем среде и миниатюр (клиент доволен большими версиями) и отображает их, как используя изображения нативного размера, так и CSS, масштабирующие среды до миниатюрной размер. Мне пришлось недавно перестроить свою Dev Box, так что последний GD/PHP по состоянию на март/апрель.function resize_image($infile, $outfile, $source_width, $source_height, $resized_width)
{
$errors =0;

$src_img=@ImageCreateFromJpeg($infile);
if (!$src_img)
$errors++;

$ratio = $resized_width / $source_width;
$dstW = floor($ratio * $source_width);
$dstH = floor($ratio * $source_height);

$dstX =0;
$dstY =0;
$srcX =0;
$srcY =0;

$dst_img=@imagecreatetruecolor($dstW,$dstH);
if (!$dst_img)
$errors++;

/* create the scaled instance */
if (!@ImageCopyResampled($dst_img,$src_img,$dstX, $dstY, $srcX, $srcY, $dstW, $dstH, $source_width, $source_height))
$errors++;

// output a JPEG
if (!@imageJpeg($dst_img,$outfile . '.JPG', 90))
$errors++;

// output a WEBP
if (!@imagewebp($dst_img,$outfile . '.WEBP', 100))
$errors++;

// output a AVIF
if (!@imageavif($dst_img, $outfile . '.AVIF', 95))
$errors++;

if ($errors)
return FALSE;
else
return TRUE;
}
< /code>
мой код масштабирования: < /p>
$webp_MEDIUM_imagetag = "";


Подробнее здесь: https://stackoverflow.com/questions/796 ... ing-php-gd
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»