ImageMagick или библиотека GD для изменения размера изображения и создания миниатюр?

Я использовал класс изменения размера изображения, написанный кем-то другим, для изменения размера изображений или создания миниатюр, вот ссылка на класс, который я использовал.

http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php

Я предполагаю, что библиотека изображений GD имеет некоторые ограничения на разрешение или размер файла изображений, она отлично работает для изменения размера изображения с низким разрешением (ниже 1024 пикселей), но не изменяет размер, если я пытаюсь загрузить изображение jpeg с высоким разрешением (например, 3400 пикселей X 2200 пикселей). ) грубо,

Целью изменения размера изображения является разработка приложения для галереи изображений.

Могу ли я каким-либо образом обойти ограничение, наложенное библиотекой изображений gd (я нахожусь на виртуальном хостинге, любые изменения в системном файле, которые мой хост не согласует). ?

Или я должен использовать imageMagick для этой цели (мой хост установил imageMagick)? Я не очень хорошо знаком с использованием imageMagick. Есть ли встроенный плагин или класс, который я мог бы использовать для этой цели?

Есть ли какие-либо рекомендации для любого плагина jquery, который мог бы выполнять мою работу?

Спасибо


person Ibrahim Azhar Armar    schedule 25.11.2010    source источник
comment
что значит не изменяет размер?   -  person bcosca    schedule 25.11.2010
comment
это означает, что он просто загружает изображение с неповрежденным разрешением, я пишу скрипт таким образом, чтобы он изменял размер изображения, а затем сохранял его на сервере.   -  person Ibrahim Azhar Armar    schedule 25.11.2010
comment
тогда с вашим скриптом что-то не так, если он не изменяет размер должным образом, если вообще. я не думаю, что какой-либо лимит, наложенный gd, является проблемой   -  person bcosca    schedule 25.11.2010
comment
@stillstanding нет, проблема не в скрипте, если вы использовали библиотеку GD, то вы, возможно, знаете, что у нее есть ограничение памяти по умолчанию, поэтому она не может загружать изображения с более высоким разрешением, все, что мне нужно было сделать, это создать экземпляр объекта изображения, который у меня был определить лимит памяти с помощью ini_set ( memory_limit, 48M); функция, и теперь она прекрасно работает и с изображениями с высоким разрешением.   -  person Ibrahim Azhar Armar    schedule 25.11.2010
comment
См. этот вопрос и ответ для получения советов по эффективному изменению размера изображения в PHP: в php">stackoverflow.com/questions/12661/   -  person Steve-o    schedule 06.01.2011


Ответы (2)


Попробуйте функцию imagecopyresized,
которая встроена,
нужно не перекомпилировать (ваш общий хостинг будет доволен),
и предоставить почти простую функцию для обработки изображений

Jquery – это клиентская библиотека javascript,
она не помогает при обработке изображений.

person ajreal    schedule 25.11.2010
comment
спасибо, я ценю это, это было самое простое решение, но я хотел бы придерживаться вышеуказанного класса, мне пришлось просто добавить ini_set (memory_limit, 48M); чтобы увеличить лимит памяти, и тогда он отлично работает для меня. :) - person Ibrahim Azhar Armar; 25.11.2010

Проблема в том, что ваша память переполняется, если вы пытаетесь изменить размер очень большого изображения с помощью библиотеки GD.

Вы должны использовать ImageMagick. используйте следующий код

exec("source -resize size destination");

Итак, если вы хотите изменить размер logo.gif до максимального размера 64x64 и переименовать его в resize_logo.gif

exec("convert logo.gif -resize 64x64  resize_logo.gif");

Для получения дополнительной информации перейдите по этой ссылке.

person Vitrix    schedule 25.11.2010
comment
я нахожусь на виртуальном хостинге и у меня нет доступа к интерфейсу командной строки. :( - person Ibrahim Azhar Armar; 25.11.2010