在Smalltalk(Pharo)中调整图像文件(JPEG)的大小

时间:2012-11-03 14:28:10

标签: smalltalk pharo squeak

我正在尝试使用pharo调整硬盘驱动器上的图像文件大小。这是我目前的做法:

img := ImageReadWriter formFromFileNamed: 'picture.jpg'.
scaledimage := img scaledIntoFormOfSize: 100.
scaledimage writeJPEGfileNamed: 'scaledPicture.jpg'.

这是一个很好的方法吗?还有一种方法可以为此图像指定jpeg压缩质量吗?

谢谢!

Henne的

2 个答案:

答案 0 :(得分:2)

好的,我找到了这样做的方法并希望分享我的解决方案。这是代码:

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。渐进式标记JPEG可以创建一个图像,在加载时在浏览器中以预览质量显示,并且传输的数据越多越好。但是并非所有浏览器都支持此功能!最后一行是可选的,只保存第二个JPEG,默认设置作为比较。我希望这可能会帮助一些人在将来寻找这个。

Henne的

答案 1 :(得分:1)

我不知道PluginBasedJPEGReadWriter

Smagick。它需要ImageMagick和OSProcess来使它工作。

如果您需要一个完整的图像处理库,它会非常有用。