2016-11-13 63 views
1

我的PHP webapp的用户可以上传PNG和JPEG图像。上传算法如下:按文件名解析由和getimagesize PHP GD .ico处理

  • 核对扩展()由imagecreatefrompng
  • 重新创建图像()/ imagepng()

    1. 核对扩展(imagecreatefromjpeg()/ imagejpeg())
    2. 重命名图像
    3. 保存到文件系统

    图片娱乐用于安全。一切正常。但现在我需要这个算法来处理.ico文件。看起来GD不适用于.ico(没有像imagecreatefromico()这样的函数),所以我不知道如何实现我的算法的第3步。

    感谢您的任何帮助或建议。

  • +0

    你见过[this](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