2016-11-13 115 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