我的 PHP Web 应用程序的用户可以上传 PNG 和 JPEG 图像。上传算法如下:
- 通过文件名解析检查扩展名
- 通过 getimagesize() 检查扩展名
- 通过 imagecreatefrompng()/imagepng() 重新创建图像 (imagecreatefromjpeg()/imagejpeg())
- 重命名图像
- 保存到文件系统
图像重建用于安全。一切正常。但现在我需要这个算法来处理 .ico 文件。看来 GD 不能与 .ico 一起使用(没有像 imagecreatefromico() 这样的函数),所以我不知道如何实现我的算法的第 3 步。
感谢您的帮助或建议。
最佳答案
参见https://github.com/lordelph/icofileloader一个可安装的 Composer 类,它可以将 .ico 文件加载到 GD 镜像中。
例如:
$loader = new Elphin\IcoFileLoader\IcoFileService;
$im = $loader->extractIcon('/path/to/icon.ico', 32, 32);
有关从图标文件中分析和提取图像的其他方法,请参阅文档。
关于PHP GD .ico 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40572828/