2016-11-13 2 views
1

Пользователи моего PHP webapp разрешают загружать изображения PNG и JPEG. Загрузить алгоритм следующим образом: расширениеОбработка PHP GD .ico

  1. проверки по имени файла разборе
  2. проверки расширения с помощью getimagesize()
  3. воссоздают изображения по imagecreatefrompng()/imagepng() (imagecreatefromjpeg()/imagejpeg())
  4. переименование изображения
  5. сохранить в файловой системе

Image отдыха используется для обеспечения безопасности. Все работает нормально. Но теперь мне нужен этот алгоритм для обработки файлов .ico. Кажется, что GD не работает с .ico (нет такой функции, как imagecreatefromico()), поэтому я не знаю, как реализовать шаг 3 моего алгоритма.

Спасибо за любую помощь или совет.

+0

Вы видели [это] (http://stackoverflow.com/questions/2628114/convert-png-file-to-ico-with-php)? –

+0

@JulienLopez Не уверен, что это мое дело. Я не меняю тип. Мне просто нужно воссоздать файл, чтобы не было вредоносного кода. – Dmitry

ответ

1

См. https://github.com/lordelph/icofileloader для класса, устанавливаемого композитором, который может загружать файлы .ico в изображение GD.

Например:

$loader = new Elphin\IcoFileLoader\IcoFileService; 
$im = $loader->extractIcon('/path/to/icon.ico', 32, 32); 

См документации для других методов анализа и извлечения изображений из файла иконки.

+0

Спасибо. Не могли бы вы сказать мне, если можно сохранить файл $ im как .ico, так как GD не имеет функций imageico() или imagecreatefromico()? – Dmitry

+0

Вы должны быть в состоянии найти несколько на упаковке, например. https://packagist.org/packages/chrisjean/php-ico –

+0

Большое спасибо, попробуем позже! – Dmitry