以前研究过AWT的图像处理,知道AWT在图像处理方面的功力不浅,特别是在3D图像处理非常擅长,不过就是API不怎么可爱,使用起来还是比较麻烦,还是觉得SWT的API比较亲切,我个人对SWT也是非常感兴趣,而且我们的项目也是基于SWT的。
<!--endfragment-->
压缩图片方式要么是将格式进行转换,比如将bmp格式转换成jpeg格式的,这种方式是通过损失图片质量来达到的压缩的目的,不过jpeg格式的图片还是比较清晰,不仔细看根本看不出什么差别。还有一种是调整图片的分辨率,现在的数码相机拍出来的照片分辨率都很高,我从办事处采集的图片发现大多数图片格式是 3264 * 2448,大小在2.5mb左右,如果不进行压缩处理就进行上传,那服务器肯定受不了,经过开会讨论,觉得图片大小控制在100kb左右比较能让服务器和用户接受,而且要看的清楚照片中车辆的车牌号。
<!--endfragment-->
这并不是什么 "不可能完成的任务" ,在我的机器上测试通过,为了方便起见,分辨率统一调成800x600,发现图片质量还过得去:
名称
|
压缩前分辨率
|
压缩前大小(kb)
|
压缩后大小(kb)
|
阿斯顿马丁One-77 P10.bmp
|
1027 x 768
|
1537
|
85
|
豫P460xx.JPG
|
3264 x 2448
|
2083
|
48
|
IMG_1338.jpg
|
2736 x 3648
|
4428
|
72
|
<!--endfragment-->
压缩后的格式都是JPEG格式的.
我使用的压缩代码是这样实现的:
<!--endfragment-->
ImageData newImageData = new ImageData("C:/imgzip/压缩前的图片.jpg").scaledTo(800, 600);
ImageLoader imageLoader = new ImageLoader();
imageLoader.data = new ImageData[] {newImageData};
imageLoader.save("C:/imgzip/压缩后的图片.jpg",SWT.IMAGE_JPEG);
先将图片路径传入到ImageData的构造方法中构造一个ImageData对象,这个ImageData对象用于描述图片的属性,比如图片的像素、大小、尺寸等信息,可以通过ImageData的scalaTo(int width ,int height)方法完成图片大小缩放,然后使用ImageLoader这个类将图片保存到指定的路径,还可以指定保存的格式。
<!--endfragment-->
很简单吧,说实话,我不是很相信使用AWT能够通过这么简单的方式完成图片大小的缩放和压缩,当然我是指AWT的元素API。
分享到:
相关推荐
相比于 Java 自带的 AWT 和 Swing,SWT 在图形渲染、事件处理等方面有着更好的性能表现。 #### 三、VEP 与 SWT 的结合 VEP 利用了 SWT 的底层图形库,为开发者提供了图形化编辑框架 GEF (Graphical Editing ...
通过阅读和分析这些代码,开发者可以更好地掌握SWT控件的使用和事件处理机制。 总的来说,"swt-demo.zip"提供了一个实用的SWT图片浏览应用示例,对于想要了解或使用SWT进行GUI开发的Java程序员来说,这是一个很好的...
在Eclipse中使用SWT进行界面设计涉及到一系列关键概念和技术,包括SWT的起源与优势、SWT应用程序的组成以及开发环境的配置。 1. 为什么要使用SWT? SWT,全称Standard Widget Toolkit,是由IBM开发的一个跨平台的...
开发者在构建针对64位Windows的Java应用时,需要将这个jar文件添加到类路径中,以便能够使用SWT提供的各种组件和功能。 SWT提供了丰富的组件,包括按钮、文本框、滚动条、树形视图、表格、菜单等,这些组件都可以在...
总之,DJNativeSwing-SWT是一个强大的工具,结合了SwT的性能优势和Java的跨平台能力,同时提供了将HTML页面转换为图片的功能,这对于需要处理网页内容的Java应用来说是一项宝贵的资源。正确理解和使用这个库,可以...
总的来说,这个"自选图片拼图游戏-swt/jface"是一个使用Java技术,特别是SWT和JFace库开发的桌面应用程序。它的特点是便携性好,无需额外安装Java环境,且具有良好的用户体验。通过这个游戏,我们可以深入理解Java ...
【使用Eclipse进行SWT编程】 SWT,全称Standard Widget Toolkit,是由IBM开发的一套跨平台的图形用户界面(GUI)开发框架。...使用Eclipse作为开发工具,可以方便地管理和调试SWT程序,提升开发效率。
SWT和Jface开发使用必使用jar包之:equinox包,配合其他jar包一起使用
与Java Swing不同,SWT使用本机API,因此在性能和外观上都有所优势。WinBuilder则是一款强大的可视化开发工具,专门用于构建基于SWT的Java应用程序,它可以显著提高开发效率,让开发者无需编写大量代码就能设计出...
在实际项目中,你可能需要根据具体的图片和窗口大小调整 `Move` 和 `Resize` 事件的处理逻辑,以确保图片始终填充窗口且不超出边界。 通过这样的实现方式,我们可以在SWT应用中创建一个可以随窗口拖动的背景图片,...
在声呐图像超分辨率中,DWT能够有效地分离图像的细节和低频信息,然后通过重构过程来增强图像的高频部分,从而提高图像的分辨率和清晰度。DWT的优缺点在于,它可以提供多尺度的图像表示,但可能会出现边界效应,需要...
正确使用布局管理器可以确保界面在不同分辨率和屏幕尺寸下都能良好显示。 10. SWT国际化与本地化:SWT支持应用程序的国际化,通过ResourceBundle和MessageFormat类,可以方便地实现文本的多语言支持。 综上所述,...
Java使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的...
在提供的CHM文件中,"swt.CHM"和"swt_api.CHM"包含了详细的Swt API文档和示例,开发者可以查阅这些资料深入学习和使用Swt。同时,建议将这些文档翻译成中文,以便更多中文使用者参考学习。通过掌握Swt API,开发者...
4. **Layout**: SWT提供了一套布局管理器,如FillLayout、GridLayout、RowLayout和 MigLayout,用于控制Shell和Composite中Widget的排列和大小。 5. **Event和Listener**: SWT事件模型基于事件和监听器。事件是用户...
SWT设计的目标是提供一个更高效、更原生的GUI,与Java标准库中的Abstract Window Toolkit (AWT) 和Swing相比,SWT能够更好地利用操作系统提供的功能,从而实现更快的性能和更好的用户体验。 标题“SWT32位和64位库...
SWT使用JNI(Java Native Interface)来实现这一目标,它允许Java代码直接调用操作系统提供的API,从而避免了Java AWT和Swing中的“重量级”组件带来的性能问题。 ### 2. 自定义控件的基础 在SWT中,自定义控件通常...
例如,它可以帮助开发者使用SWT的表格控件,同时保持Swing的事件处理和布局管理机制。 接下来是swt-win-x64.jar,这是一个针对Windows 64位操作系统的SWT库。SWT库是平台相关的,因为它直接与底层操作系统进行交互...
通过以上介绍,我们可以看出SWT为开发者提供了一套全面的键盘和鼠标事件处理机制,这对于构建功能丰富且用户体验良好的应用程序来说是非常重要的。开发者可以根据不同的需求选择合适的事件监听器,以实现所需的功能...