Лучший класс по обработке изображений PHP - PullRequest
21 голосов
/ 24 июня 2011

Я создаю веб-сайт, и мне нужно:

  • Загрузить изображение
  • Проверить, что это изображение (а не, о, я не знаю .... a virus :))
  • Изменить размер изображения
  • преобразовать в jpg

По существу загрузка базового изображения

Вместоя пишу свой собственный, я пытаюсь найти класс php , который позволяет мне делать все это, потому что, как сказал Джефф Этвуд, "никогда не создавай то, что ты можешь украсть"

Теперь, прежде чем идти дальше и понизить голос, потому что я не проводил исследования, я сделал:

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

Пока я нашел:

Кто-нибудь имеет опыт работы с этими классами?Можете ли вы порекомендовать замечательный класс для загрузки изображений?

Ответы [ 9 ]

17 голосов
/ 24 июня 2011

Моя любимая библиотека манипуляций с изображениями - WideImage.Это невероятно легко сделать такую ​​задачу.

WideImage::load('pic.png')
->crop('center', 'center', 90, 50)->saveToFile('cropped/pic.jpg');

Что касается проверки, является ли это изображение или нет, используйте finfo или PEAR::Mime_type.Я лично предпочитаю PEAR::Mime_Type.Он использует finfo, но его проще использовать.

Использование finfo:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $filename);

$isImage = (preg_match('#^image/#', $mimetype) === 1);

Использование PEAR::Mime_Type:

$mimetype = MIME_Type::autoDetect($filename);

$isImage = MIME_Type::wildcardMatch('image/*', $mimetype);
13 голосов
/ 24 июня 2011

Я склонен использовать рамки того или иного описания, которые охватывают часть загрузки файла.Однако, есть рекомендация для бита обрезки:

Представьте себе - https://github.com/avalanche123/Imagine

И если вы хотите сделать загрузчик чуть-чуть лучше, чем просто входной тип = файл, попробуйте:

https://github.com/valums/file-uploader

5 голосов
/ 06 июня 2013

Проверьте плагин JCROP

Это будет полезно для всех

Изображение JCROP cropping----deepliquid.com/content/Jcrop.html

enter image description here

4 голосов
/ 29 июля 2012

есть также эта облегченная библиотека для работы с изображениями, написанная на PHP , называемая Zebra_Image , она очень маленькая, не раздутая с миллионом функций, которые вы никогда не будете использовать, с высокой оптимизацией, с отличная документация и которая активно поддерживается.

4 голосов
/ 24 июня 2011

Загрузка классов из Colin Verot http://www.verot.net/php_class_upload.htm - моя любимая. Я использую во всех моих проектах. Подобно тому, как вы «общаетесь» с классом и используете только то, что вам нужно, но дает множество настроек / методов для настройки его под ваши конкретные потребности. Отличный класс!

2 голосов
/ 30 июля 2013

Я рекомендую SimpleImage , это очень просто, имеет только один файл и обновляется.

Пример использования:

$img = new SimpleImage('image.jpg');

// Resize the image to 320x200
$img->resize(320, 200);

$img->save('new-image.jpg');
2 голосов
/ 17 сентября 2012

Рекомендую использовать Smart Image Resizer http://shiftingpixel.com/2008/03/03/smart-image-resizer/

Вы получаете наилучшее качество изображения после изменения размера

Это чрезвычайно просто в использовании. Использует кеш изображений.

1 голос
/ 24 июня 2011

Если вы хотите перейти на среду MVC PHP, я настоятельно рекомендую Codeigniter .

Помимо нескольких других классов и библиотек, которые обрабатывают нумерацию страниц, таблицы, безопасность, формы и т. Д. В CI также есть отличные классы загрузки и обработки изображений, которые очень удобны и гибки. Я считаю, что они могут сделать все, что вам нужно (просто не уверен насчет конвертации в jpg).

Вы можете проверить их по адресу:

Класс манипулирования изображениями

Класс загрузки файлов

0 голосов
/ 15 марта 2018

Я использую это изображение кадрирование, оно работает хорошо

Простой PHP Image cCrop

...