Как изменить размер изображения с URL и уменьшить его размер. - PullRequest
4 голосов
/ 25 декабря 2009

У меня есть сайт на Joomla с модулем virtuemart.

У меня есть изображения и эскизы, размещенные на другом домене.

Virtuemart дает мне 2 варианта:

1 - найдите изображение, миниатюра будет создана автоматически

2 - введите URL для изображения, которое размещено на внешнем сервере, эта опция не имеет опции изменения размера

Способ, которым я преодолел эту проблему (с помощью конечно), состоит в том, чтобы установить атрибут height = "" для тега img. Единственная проблема заключается в том, что когда загружается большое изображение, например: 500 x 700 px, так называемая миниатюра требует времени для загрузки, это логично.

Может ли кто-нибудь дать мне варианты, как изображение с URL-адреса может быть "изменено", в результате чего миниатюра загружается меньше времени?

Лично я думал о способе снижения качества изображения с измененным размером изображения, которое приходит из URL с кодом, CSS или чем-то еще?

Я знаю, что это не связано с решением кода, но я знаю, что вы, ребята, знаете больше вариантов, чем я.

1 Ответ

12 голосов
/ 25 декабря 2009

Вы можете использовать imagecopyresampled функцию PHP.

Пример программы (источник: php.net)

<?php
// The file
$filename = 'http://valplibrary.files.wordpress.com/2009/01/5b585d_merry-christmas-blue-style.jpg';
$percent = 0.5; // percentage of resize

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>
...