`
gdwrx_winson
  • 浏览: 131503 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Eclipse中的Image

阅读更多

  • 图像(Image类) 

    开发项目中少不了用到图像,在SWT中图像是Image类,它有多种构造函数,下面主要介绍new Image(Device deviceString filename),来介绍,其中Device称为设备,它包含Display(显示)和Print(打印),两种设备。

    前面的很多例子里已经包含了图像的显示了,都是用的Display 设备。

Image是比较重量级的对象,占用内存很大,一般来说,当应用程序退出时,会释放掉Image所占用的资源。但某些OS由于特殊原因,Image仍有可能继续存在于系统内存中。综上所述,为了提高Image对象的使用率,在EclipseImage是可以被各组件共享的。当窗口关闭时,Image不会自动清除掉,而是继续保留在系统中,以便被其他窗口组件使用,因此如果肯定程序中不会在使用某个Image对象,就应该用Imagedispose()方法,立即释放掉Image

    类似情况的还有,font(字体),color(颜色)等.

  • 图像描述符(ImageDescriptor类)

由于Image存在的一些问题,Jface包提供了一个轻量级的ImageDescriptor类,ImageDescriptor并不存储图像本身,而是在程序需要时,才会创建图像,并且有些界面组件也只接受ImageDescriptor做参数来设置图像。
    ImageDescriptor是一个抽象类(abstract),所以它不能用new的方式来创建。下面介绍ImageDescriptor的两种静态方法createFromFilecreateFromURL来生成图像描述符的方法。
    1CreateFromFile方法
ImageDescriptor imageDesc = ImageDescriptor. CreateFromFile(abc.class,”src/275.jpg”)
    此句指当要创建图像时,会通过abc.class类所在目录下的src子目录来加载275.jpg,此时imageDesc只是包含了指向275.jpg的信息。还没有真正加载图片,abc.class这个参数可以是这个项目中的其他类,甚至是写这个语句的类也可以。(注意实际运用时候275.jsp放在abc.java类所在目录下。)
    2. createFromURL方法
    URL url = new URL(“file:\\E:\\src\\275.jpg”);
    ImageDescriptor imageDesc = ImageDescriptor. createFromURL (url)
    3. 利用Eclipse自带的图像
    如果开发插件,由于插件是基于Eclipse环境运行的,所以还可以用Eclipse自带图像。
    ImageDescriptor imageDesc = WorkbenchImages.getImageDescriptor(
                                                  iWorkbenchGraphicConstants.IMG_ETOOL_HOME_NAV)
    4. ImageDescriptor总结
    ImageDescriptorimage有个好处,如果前者所指图像路径错误,则会自动用一个红色方块图像代替,而不会像后者那样弹出错误提示框。另外由ImageDescriptor也可得到image,方法是:Image image = imageDesc.createImage();

  • 图像注册表(ImageRegistry类)

  JFace提供了一个高速提供了一个能高速缓冲图像和图像描述符的图像注册表。它的设计思路是:先创建指向图像的图像描述符,然后将图像描述符加上一个键值添加到图像注册表中,这个键值和图像描述符一一对应的。当希望获得图像时,就可以用键值从注册表中取得。
   下面是一个图像注册表加值,取值,移除的方法。代码如下:

        /*
         * 创建一个图像注册表,因为程序需要共享图像注册表ImageRegistry,所以在实际项目中
         * 最好将ImageRegistry设置成静态变量(类变量)以使它可以被全局访问
         
*/

        ImageRegistry imageRegistry 
= new ImageRegistry();
        
//创建一个图像描述符对象
        URL url = new URL("file:src/275.jpg");
        ImageDescriptor imageDesc 
= ImageDescriptor.createFromURL(url);
        
//将图像描述符添加到图像注册表,键值为“refresh”
        imageRegistry.put("refresh", imageDesc); 
        
//将图像从图像注册表取出
        Image image = imageRegistry.get("refresh");
        
//从图像注册表取出图像描述符
        ImageDescriptor imageDesc2 = imageRegistry.getDescriptor("refresh");
        
/*
         * 将图像从注册表里移除,如果有组件正在使用这个图像,图像依然会被释放掉,组件上就不会显示此图像.
         * 另外,如果注册表里没有这个键值“refresh”也不会显示错误或异常.
         
*/

        imageRegistry.remove(
"refresh");

分享到:
评论

相关推荐

    Developing ImageJ Plugins in Eclipse.docx

    "ImageJ插件开发在Eclipse中的实现" ImageJ是一款基于Java的医学图像处理软件包,提供了丰富的图像处理函数,非常便捷。开发ImageJ插件需要在Eclipse中进行设置和配置,以下是实现ImageJ插件开发的步骤: 1. 创建...

    Mulit-Image-Selector eclipse版

    总的来说,`Mulit-Image-Selector eclipse版`是一个实用的Android图片选择解决方案,它为Eclipse开发者提供了方便的图片选择、上传功能,能够适应多种应用场景,且易于集成到现有项目中。通过调整参数,开发者可以...

    AndroidImageSlider_eclipse

    **AndroidImageSlider_eclipse**项目是一个专为Android平台设计的图片滑动库,它已经被优化以便在Eclipse集成开发环境中使用。这个库主要用于创建动态、交互式的图片滑动展示,通常用于应用程序的启动页、产品展示...

    org.eclipse.swt.win32

    org.eclipse.swt.internal.image.JPEGArithmeticConditioningTable.class org.eclipse.swt.internal.image.JPEGComment.class org.eclipse.swt.internal.image.JPEGDecoder.class org.eclipse.swt.internal.image....

    在eclipse中运行java applet时的一些问题

    然而,在Eclipse中运行Java Applet时,可能会遇到各种问题,特别是涉及到资源加载,如图片无法显示的问题。 这个问题可能由以下几个因素引起: 1. **类路径配置**:Java Applet需要正确的类路径来找到包含图片的...

    在eclipse中运行带html参数传递的applet文件

    然而,本文将探索一种更为便捷的方法,即通过简单的配置即可实现在Eclipse中调试Applet而无需创建Web项目。 #### 配置步骤 ##### 1. 准备工作 首先确保已经安装了Eclipse IDE,并且创建了一个Java项目用于存放...

    Image Processing with ImageJ

    ### 图像处理与ImageJ #### 一、概述 ...无论是在科学研究还是工业应用中,ImageJ都将成为一个不可或缺的工具。此外,随着社区的不断壮大和发展,ImageJ也在不断地进化和完善,为用户提供更多可能。

    文字识别OCR Eclipse版本

    在这个项目中,我们将深入探讨如何在Eclipse环境下配置和使用OCR库,以便进行文字识别。 首先,我们要了解OCR的基本原理。OCR通过分析图像中的字符形状和结构,将其转换成计算机可以理解的文本数据。这一过程通常...

    universal-image-loader Eclipse版本的demo

    universal-image-loader的源码只支持android studio,这里有一份用Eclipse编译的版本,有需要的同学,赶紧下载吧,

    Eclipse导出类图时序图(亲测),安装截图

    在本文中,我们将深入探讨如何在Eclipse集成开发环境中导出类图和时序图,以及如何确保这一过程在最新版本的Eclipse中仍然有效。Eclipse作为一个强大的Java开发工具,也提供了对统一建模语言(UML)的支持,允许...

    Activiti绘制图讲解 基于eclipse 个人总结文档

    - **操作**:在Eclipse中,可以为流程中的顺序流添加EL表达式来判断流程的走向。 以上就是基于Eclipse的Activiti绘制图的个人总结文档。希望这份文档能帮助您更好地理解和使用Activiti工作流引擎。

    Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法

    Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法 在Java开发中,对图片的操作需要引入com.sun.image.codec.jpeg包,但是有时引入这个包会报错,引发了开发者的困惑。幸运的是,通过以下操作可以完成...

    ImageEditor-Android-master 的eclipse版本

    《ImageEditor-Android在Eclipse环境中的应用与实践》 在Android开发中,图像编辑功能是许多应用程序不可或缺的一部分,能够提供丰富的用户体验。本项目“ImageEditor-Android-master”专为Android平台设计,提供了...

    mac Eclipse安装包

    在Mac上,Eclipse通常以.dmg(Disk Image)格式的文件提供,类似于Windows的.exe可执行文件。在提供的压缩包中,我们看到有一个名为"Eclipse Installer.app"的文件,这就是Eclipse的安装程序。 安装步骤如下: 1. ...

    Eclipse RCP 打印表格.zip

    在“Eclipse RCP 打印表格.zip”这个资源中,我们关注的是如何在Eclipse RCP应用中实现表格的打印功能。 在Eclipse RCP中,表格组件通常使用 SWT (Standard Widget Toolkit) 或 JFace 的 TableViewer 类来创建。SWT...

    Eclipse平台扩展点清单

    本文将详细介绍 Eclipse 平台中的多个关键扩展点及其作用,帮助开发者更好地理解和利用 Eclipse 的扩展能力。 #### 二、核心扩展点 **1. org.eclipse.core.contenttype.contentTypes** 此扩展点用于定义新的内容...

    Eclipse编写的Java屏幕截屏Demo

    在本文中,我们将深入探讨如何使用Eclipse IDE和Java编程语言来实现屏幕截屏功能。Eclipse是一款广泛使用的开源集成开发环境(IDE),主要用于Java、C++、Python等多种编程语言的开发。在这个“Eclipse编写的Java...

    Eclipse拖拉界面讲解

    1. **新建工程**:首先,你需要在Eclipse中创建一个新的项目。步骤如下:点击`File` > `New` > `Other`,然后选择`WindowBuilder` > `SWTDesigner` > `SWT/JFace Java Project`。为项目命名后,点击`Finish`。 2. *...

Global site tag (gtag.js) - Google Analytics