Лучший класс изображений изображений PHP
Я разрабатываю веб-сайт, и мне нужно:
- Загрузить изображение
- Подтвердите, что это изображение (а не, о, я не знаю.... вирус:))
- Изменить размер изображения
- конвертировать в jpg
По существу, загрузка основного изображения
Вместо того, чтобы писать свои собственные, я пытаюсь найти класс php, который позволяет мне делать все это, потому что, как сказал Джефф Этвуд, "никогда не разрабатывайте, что вы можете украсть"
Теперь, прежде чем идти вперед и вниз, потому что я не проводил исследований, я сделал:
Googling это приводит к огромному количеству результатов, что является проблемой, я не знаю, какие результаты полезны и которые являются мусором!
До сих пор Ive обнаружил:
Есть ли у кого-нибудь опыт работы с этими классами? Можете ли вы порекомендовать отличный класс загрузки изображений?
Ответы
Ответ 1
Я имею тенденцию использовать структуру того или иного описания, которое охватывает часть загрузки файла. Однако у вас есть рекомендация для бита обрезки:
Представьте себе - https://github.com/avalanche123/Imagine
И если вы хотите сделать загрузчик немного лучше, чем просто файл input type =, попробуйте:
https://github.com/valums/file-uploader
Ответ 2
Моя личная любимая библиотека манипулирования изображениями 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);
Ответ 3
Проверить плагин JCROP
Это будет полезно для всех
JCROP Image cropping----depliid.com/content/Jcrop.html
![enter image description here]()
Ответ 4
Загрузка класса из Colin Verot http://www.verot.net/php_class_upload.htm является моей любимой. Я использую во всех своих проектах. Подобно тому, как вы говорите "с классом" и используете только то, что вам нужно, но дает множество настроек/методов, чтобы настроить его на ваши конкретные потребности. Отличный класс!
Ответ 5
также есть эта Zebra_Image, которая очень маленькая, не раздутая с миллионом функции, которые вы никогда не будете использовать, сильно оптимизированы, с отличная документация и которая активно поддерживается.
Ответ 6
Я рекомендую использовать Smart Image Resizer
http://shiftingpixel.com/2008/03/03/smart-image-resizer/
Вы получаете наилучшее качество изображения после изменения размера
Он чрезвычайно прост в использовании. Он использует кеш изображения.
Ответ 7
Я рекомендую SimpleImage, это очень просто, имеет только один файл и обновляется.
Пример использования:
$img = new SimpleImage('image.jpg');
// Resize the image to 320x200
$img->resize(320, 200);
$img->save('new-image.jpg');
Ответ 8
Если вы хотите перейти на фреймворк MVC, я настоятельно рекомендую Codeigniter.
Помимо нескольких других классов и библиотек, которые обрабатывают разбиение на страницы, таблицы, безопасность, формы и т.д., CI также имеет хорошие классы загрузки и обработки изображений, которые очень удобны и гибки.
Я считаю, что они могут делать все, что вам нужно (просто не уверены в преобразовании jpg).
Вы можете проверить их:
Класс манипуляции с изображениями
Класс загрузки файлов