让我解释一下我正在尝试做什么,我正在使用
PHP构建一个命令行工具,它使用这些程序来优化Web的图像……
imagemagick确定文件类型并将非动画gif转换为png
gifsicle优化动画Gif图像
jpegtran优化jpg图像
pngcrush优化png图像
pngquant将png图像优化为png8格式
pngout将png图像优化为png8格式
这是一个非常繁重的过程,幸运的是它很少进行,但我仍然希望尽可能地优化.
现在处理大约12个图像需要大约76秒.所以你可以看到它是一个缓慢的过程,想象100张图像.
我真的想以某种方式将图像标记为优化,所以当我加载一批图像时,它首先要做的是通过ImageMagick来获取确切的文件类型,如果我能以某种方式嵌入一条消息会很好说这个图像已经尽可能地优化了,然后当我正在读取图像时,如果它检测到一条消息,它将知道不会浪费宝贵的时间通过所有其他程序运行该特定图像,如果可能的话,它可以大大提高速度.
请帮助我,我不习惯使用这样的图像,这是否可能,如果它是什么叫它,我怎么能实现它?
谢谢你的帮助
最佳答案 如果您要在图像中包含一个标志,那么这将被提供给客户端.它会增加图像的文件大小,从而抵消了一些优化.
建议
保持状态的参考
将目录保存在同一目录中的文件中 – 非常类似于Windows Thumbs.db
文件.
另一种选择是将记录保存在数据库或数据存储区中,例如Redis或Memcached.
处理后移动
处理后,您可以将文件移动到其他目录(如@Jordan提到的那样).
更改文件名以指示它已处理
另一个选择是在文件名上附加一个额外的“扩展名”,例如:
my_image.processed.jpg
在图像中嵌入数据
隐写术
通常这用于尝试隐藏图像中的隐蔽数据,它被称为Steganography.但它并不适合这种用例.
EXIF数据
你可以将它写入图像的EXIF数据,但据我所知,这只是JPEG和TIFF.有一个PHP library available called PEL用于写入和读取EXIF数据.