我试图用pharo在硬盘驱动器上调整图像文件的大小。这是我目前这样做的方式:
img := ImageReadWriter formFromFileNamed: 'picture.jpg'.
scaledimage := img scaledIntoFormOfSize: 100.
scaledimage writeJPEGfileNamed: 'scaledPicture.jpg'.
这是这样做的好方法吗?还有一个方法可以指定此图像的JPEG压缩质量?
谢谢!
henne
好吧,我找到了这样做的方法,并想分享我的解决方案。这是代码:
img := ImageReadWriter formFromFileNamed: 'pic.jpg'.
scaledimage := img magnifyBy: 0.8.
PluginBasedJPEGReadWriter
putForm: scaledimage
quality: 95
progressiveJPEG: false
onFileNamed: 'scaledPicture95.jpg'.
scaledimage writeJPEGfileNamed: 'scaledPictureDfl.jpg'.
这样,您可以按一个因素扩展图像,在这种情况下为0.8。大于1的因素也有效。此外,您可以指定JPEG质量。在此示例中,我选择了95。Flag Progressive JPEG可以创建一个图像,该图像在加载时以浏览器的预览质量显示,并且会出现更好的数据传输。不过,所有浏览器都不支持!最后一行是可选的,只是用默认设置保存了第二个JPEG作为比较。我希望这可以帮助某些人在将来寻找这个。
henne
我不知道PluginBasedJPEGReadWriter
。
有smagick。它需要ImageMagick和Osprocess才能使其起作用。
如果您需要一个完整的图像操纵库。