SWT 与 AWT 在图像文件处理性能方面?
在服务器端图像处理中,我应该使用AWT还是SWT?
我认为 AWT 可能过于抽象,远离实际的图像数据位,所以我想 SWT 可能会稍微快一些。
或者你推荐另一个开源图像处理库? (BSD 或 Apache 许可)
服务器运行 Ubuntu 11.04。
要求:
- 从流中读取/写入图像而不是文件。
- 图像类型作为参数给出,而不是从扩展中猜测。 (如果可以从标头字节确定图像类型,则这是可选的。)
- 支持 JPG、PNG、GIF。
- (奖励)支持 GIF 动画。
用例:
- 生成缩略图。
- 添加一些横幅文本。
- 添加神秘图像水印和验证。
In server side image process, should I use AWT or SWT?
I think AWT maybe too abstract away from the actual image data bits, so I guess SWT maybe slightly faster.
Or do you suggest another open source image process library? (BSD or Apache licensed)
The server is running Ubuntu 11.04.
Requirements:
- Read/write image from/to stream instead of files.
- The image type is given as parameter rather then guess from extension.
(This is optional if it can determine the image type from the header bytes.) - Support of JPG, PNG, GIF.
- (Bonus) Support of Animated GIF.
Use cases:
- Generate thumbnails.
- Add some banner texts.
- Add cryptic image watermark and validation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SWT 在图像处理方面的知识很少。标准的 JDK 图像内容有精美的 ImageIO 包和 Java2D,它几乎可以做任何事情。我认为这是一个简单的事情:使用 Java 的内置内容,并且不要尝试将 SWT 用于不适合的用途。
SWT has very little in terms of image processing. The standard JDK image stuff has the fancy ImageIO package, and Java2D which can do pretty much everything. I'd call this a no-brainer: use Java's built-in stuff, and don't try to use SWT for something it's not intended for.
我可以赞同 Ernest 关于 SWT 的想法来完成这项任务,算了。
但是,虽然 Swing 非常适合图像操作和输出,但 Swing 的
ImageIO
在输入过程中经常失败:您在野外遇到的许多图像在浏览器中工作正常,但会产生异常。我所知道的最好的 Java 选项是 JAI,不幸的是它使用起来很痛苦。因此,帮自己一个忙,使用 JAI 进行输入,使用 Swing 进行其余操作,如下所示:
JAI 在极少数情况下也会失败(具有自定义颜色空间的 JPG,如 Photoshop 编写的,就是一个例子)。如果您想做得更好,请使用 ImageMagick,这是一个超强大的命令行工具。有可用的 Java 接口,它们要么为命令行提供 API,要么使用 JNI 调用本机库,请参阅 这里。
I can second Ernest's notion about SWT for this task, forget it.
But while Swing is fine for image manipulation and output, Swing's
ImageIO
fails too often during input: many images which you'll meet in the wild, and which work fine in the browser, produce Exceptions.The best Java option I know of is JAI, which unfortunately is a pain to use. So do yourself a favor, and use JAI for input, and Swing for the rest, like this:
JAI will also fail in rare cases (JPGs with custom color space, as written by Photoshop, are an example). If you want to do even better, use ImageMagick, which is an ultra-powerful command line tool. There are Java interfaces available, which either provide an API for the command line, or use JNI to call the native library, see here.