Подтвердить что ты не робот

Лучший класс изображений изображений PHP

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

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

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

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

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

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

До сих пор Ive обнаружил:

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

4b9b3361

Ответ 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);

Ответ 4

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

Ответ 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).

Вы можете проверить их:

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

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