我使用Ubuntu上的F-Spot来旋转一些照片(JPEG文件),然后将其FTP到我的网站。这似乎工作得很好。但是,如果这些图像在Web浏览器中打开,它们不会显示为旋转。如果我将它们下载到Windows Vista机器,并在那里使用任何标准程序打开它们,也不会。我怀疑F-Spot通过修改exif数据或类似物来旋转图像,而不是通过实际旋转图像。使用PHP或Perl来正确旋转JPEG图像
所以我想一个小功能,将我的网络服务器(例如,PHP或Perl),将接受的文件路径的数组,检查图像,并旋转那些需要旋转,覆盖原文件上运行。
我知道一些PHP,但没有Perl。
在查询这个问题是否已经被问到的过程中,我遇到了一些想法。经过一些试验和错误之后,我可能能够使用glob(),exif_read_data()和imagerotate()将某些东西揉合在一起。我明天再试。但现在我要去睡觉了。
只是一个提示:您的结束语使人们想要将您的问题关闭为“不再相关”,并可能阻止答案,因此您可能希望下次省略。 :) – Ether 2009-11-11 23:53:29
只需使用ImageMagick附带的命令行'convert'实用程序来旋转图像并将其上传到您的站点,而不是编写服务器端解决方案。请注意,提供的两个答案都会在每次访问时旋转图像。如果每次访问图像时都要用旋转的图像替换原始文件,效果会很有趣*。 – 2009-11-12 03:37:32
澄清:感谢您对旋转图像的帮助。但是,我真正需要帮助的是检查图像以确定哪些图像需要旋转。我真的很想要一个服务器端的解决方案,因为我的笔记本电脑花了大部分时间上传所有这些图像,我不喜欢这样做。 显然,图像中有一些标志,告诉F-Spot显示它们旋转。我怎样才能找到那个标志并只旋转图像呢?我将在exif数据中查找它,但函数exif_read_data()的php手册看起来并不乐观。 – TRiG 2009-11-12 09:59:05