图片资源管理

在eclipse插件开发的时候,很多地方都需要用到图片之类的资源,而在SWT中图片资源是需要手动释放的。虽然操作不难,但是手动释放时机却很难把握,尤其是图片可能被多个地方用到的时候。在网上看了一个帖子:

http://southking.iteye.com/blog/316449对资源的解释还是蛮详细的,但是也没有提供一个简单的图片管理实现。这里把自己的简单实现图片资源管理的代码贴出来:

 

public static ImageDescriptor findImageDescriptor(String path)
    {
        final IPath p = new Path(path);
        if (p.isAbsolute() && p.segmentCount() > 1)
        {
            return AbstractUIPlugin.imageDescriptorFromPlugin(p.segment(0), p.removeFirstSegments(1).makeAbsolute()
                    .toString());
        } else
        {
            return getBundledImageDescriptor(p.makeAbsolute().toString());
        }
    }
 

private static ImageDescriptor getBundledImageDescriptor(String path)
    {
        return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
    }
 

public Image getBundledImage(String path)
    {
        Image image = getImageRegistry().get(path);
        if (image == null)
        {
            getImageRegistry().put(path, getBundledImageDescriptor(path));
            image = getImageRegistry().get(path);
        }
        return image;
    }
 

上述是加载插件里面的图片资源,位置也是相对当前插件工程的。

 

下面贴一点其他的:

1.使用Image(Device device, InputStream stream)构造函数,示例代码如下, path为图像相对路径:

 

如下是官方提供的例子:

 

static Image loadImage (Display display, Class clazz, String string) {
          InputStream stream = clazz.getResourceAsStream (string);
          if (stream == null) return null;
          Image image = null;
          try {
               image = new Image (display, stream);
          } catch (SWTException ex) {
          } finally {
               try {
                    stream.close ();
               } catch (IOException ex) {}
          }
          return image;
     }
 

如下是我自己的实现:

 

/**
     * 
     * @param file 传入的对象必须为图片对象
     * @return
     * @throws CoreException
     */
    public static Image getImage(IFile file) throws CoreException
    {
        if (file == null || file.exists())
        {
            return null;
        }

        Image image = JFaceResources.getImage(file.toString());
        if (image == null || image.isDisposed())
        {
            image = new Image(Display.getCurrent(), file.getContents());
            JFaceResources.getImageRegistry().put(
                    file.getFullPath().toOSString(), image);
        }
        return image;
    }
 

2.使用ImageDescriptor的createImage()方法,示例代码如下,path为图像相对路径:

 

private Image getImage(String path){
  URL url = null;
  try{
   url = new URL(Activator.getDefault().getDescriptor().getInstallURL(), path);
  }catch(MalformedURLException e){
   e.printStackTrace();
  }
  ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url);
  return imageDescriptor.createImage();
 }
 

private Image getImage(String path){
   ImageDescriptor desc = AbstractUIPlugin.imageDescriptorFromPlugin(ID, path);
   return desc.createImage();
}
 

 

 

大众点评爬虫实战:如何用Python绕过反爬机制获取评论数据(附完整代码) 本文深入探讨了2024年使用Python进行大众点评数据采集的实战策略。文章详细解析了现代反爬机制的核心逻辑,并提供了从构建拟人化请求会话、应对动态内容与接口加密,到工程化实践(代理调度、状态持久化)的完整解决方案与代码示例,旨在帮助数据分析师稳健获取评论数据,用于后续的文本挖掘与商业洞察。 阅读详情

相关推荐

揭秘 Chat Template 如何驱动 AI Agent?以Qwen3为例详解LLM的聊天模板

bos_token: null (没有使用特殊的文档开始符)eos_token<|im_end|>(作为每个对话回合的结束符)pad_token: 对话回合开始<|im_end|>: 对话回合结束非特殊但关键的控制 Token (在词汇表中定义): 包裹模型生成的工具调用请求。: 包裹外部工具返回的执行结果。<think></think>: 包裹模型的内部思考或推理过程。

ljp1919的专栏 1312

高质量免费视频,图片资源网址

https://pixabay.com/

鹿林深的博客 3万+

全面plist图片资源管理工具使用指南

本文还有配套的精品资源,点击获取 简介:plist图片分解工具是一款专门用于从.plist文件中提取图片资源的软件,常见于iOS游戏开发。该工具允许开发者在Windows系统上进行操作,提供图片查看、分离、编辑和重新打包等功能。它支持文件解析和图像处理,旨在优化iOS应用的资源管理和性能。开发者可以利用此工具方便地管理和优化他们的应用资源,特别是在处理大量图片资源时。 ...

weixin_36444661的博客 1575

国内比较有名的一批图片资源网站!

TUTU坊:http://www.sczz.com/非常图酷http://www.tucoo.com 构图网:http://www.goto1.net 矢量LOGOhttp://www.findlogo.com/find1.htm 美图http://www.6to23.com/s8/ 搜图网:http://www.sophoto.net/cgi-bin/imagefolio.cgi 伊美姬网htt...

weixin_30492601的博客 1251

高清大图素材图片资源,你知道哪里找么?

一图胜千言。 这是设计项目中照片和视频背景背后的想法。 以图片为基础的背景在用语言或其他视觉工具无法做到的方式讲述一个故事时是最有效的。 全屏照片或视频背景——静止或作为滑块的一部分——非常流行。 这种类型的背景非常吸引人,以至于在设计中很多用户甚至不会注意到背景和前景的区别,因 选择一个讲述你正在进行的设计项目的故事的照片背景,并考虑使用脸作为照片中的关键元 素,以进一步吸引人们进入设计。 大照片背景已经在各种项目类型中流行了一段时间,尤其是网站。 更常见的是,印刷设计师也在使用它们。

awayaya1的博客 6856

UI常见的资源网站

ui 设计资源材料

ERHAabc123的博客 9419

Eclipse中的图片资源管理

在本文中,将讨论如下内容:   1、 系统资源,为后面讨论图片资源做一铺垫   2、 SWT中的图片资源管理   3、 Display hook销毁机制,JFace中图片资源管理的重要基础   4、 JFace中的ImageDescriptor   5、 JFace中的图片资源管理(ImageRegistry)   6、 JFace中图片资源管理ImageRegistry所适用的场景和使用规则  ...

SouthKing 394

imgsrc-app:一款强大的图片资源管理工具

imgsrc-app:一款强大的图片资源管理工具 项目介绍 在现代互联网时代,图片资源管理成为许多开发者和设计师的重要需求。imgsrc-app 是一款开源的图片资源管理工具,旨在帮助用户高效地存储、管理和分享图片资源。它基于Next.js框架开发,提供简洁直观的界面和丰富的功能,让图片管理变得更加轻松便捷。 项目技术分析 技术栈 imgsrc-app 使用了以下技术栈: 前端框架:Next.j...

gitblog_00046的博客 832

开发小技巧-图片资源管理

前言一个完整的项目离不开图片资源,在一个Apk的组成中,大头都是资源文件了,如果资源太多导致Apk太大,如何管理资源图片都是一个App开发者头痛的问题!除了那些资源都通过后台下发的...😂😂下面介绍几种目前常见的图片资源管理方案:一、png图片相信大家刚接触 Android 开发都是用png图片了,并且按照分辨率分为三、四种尺寸 hdpi xhdpi xxhdpi xxxhdpi等。 如果你只使用一种尺寸,那么在匹配的其他分辨率设备上就会拉伸/压缩图片。如果图片使用不当就会占用更多的内存空间,更容易导致..

chuyouyinghe的专栏 632

presenterm本地资源管理图片与文件路径配置

你是否曾在终端演示中遭遇图片显示异常?是否因文件路径配置混乱导致资源加载失败?presenterm作为一款终端幻灯片工具(Terminal Slideshow Tool),提供了灵活的本地资源管理机制,尤其在图片渲染与文件路径处理上表现出色。本文将系统讲解如何通过配置文件、路径解析规则和协议选择,实现高效的本地资源管理,确保演示文稿中的图片与文件资源准确加载。 读完本文后,你将掌握: - 图片协...

gitblog_00455的博客 621

Spree电商平台中的图片资源管理最佳实践

在电商平台开发中,图片资源管理是决定用户体验和性能的关键因素。Spree Commerce作为一款开源的电商框架,提供了强大而灵活的图片资源管理系统。本文将深入探讨Spree平台中图片资源管理的最佳实践,帮助开发者构建高性能、可扩展的电商应用。 ## Spree图片管理系统架构 ### 核心组件概述 Spree使用ActiveStorage作为其图片资源管理的基础框架,提供了现代化的...

gitblog_00598的博客 287

Walk资源管理:图标、字体、图片资源的高效使用

在Go语言GUI开发中,**Walk资源管理**是构建美观Windows应用程序的关键技术。Walk资源管理器提供了一套完整的资源加载和缓存机制,让开发者能够轻松管理图标、字体、图片等各种界面资源,显著提升应用程序性能和开发效率。 ## 🎯 什么是Walk资源管理器? Walk资源管理器是一个单例模式的资源缓存系统,专门用于共享位图、图标等资源。通过**ResourceManager**结构

gitblog_01090的博客 396

EaselJS资源管理最佳实践:图片、字体与数据的高效管理

你是否在使用EaselJS开发交互式Web内容时,遇到过图片加载缓慢、字体显示异常或数据处理混乱的问题?本文将系统介绍EaselJS中图片、字体与数据的高效管理方案,帮助你提升项目性能和开发效率。读完本文,你将掌握资源预加载、优化加载策略、错误处理及缓存管理等核心技能。 ## 资源管理的重要性 在EaselJS项目中,资源管理直接影响用户体验和开发效率。不合理的资源加载会导致页面加载缓慢、动画...

gitblog_00546的博客 1048

FlappyBird资源管理图片、音效加载与内存优化方案

欢迎来到FlappyBird资源管理指南!🎮 如果你正在开发Java游戏或者对游戏资源优化感兴趣,那么这篇文章将为你提供完整的FlappyBird图片、音效加载与内存优化方案。FlappyBird作为一款经典的休闲游戏,其资源管理策略值得每个游戏开发者学习。 ## 为什么游戏资源管理如此重要? 在Java游戏开发中,资源管理直接影响游戏的性能和用户体验。FlappyBird通过高效的资源加载

gitblog_00001的博客 1035

Qt图片资源管理

这样引用的就是第二个qrc中的图片。:/myimg 是资源描述符的前缀,可以为空,添加后目录结构。二者的前缀一样,如果一样,且存在相同路径的图片时,后面的会把前面的覆盖。这个就是基于linux下或者winodows下的文件相对路径的写法。可以添加多个qrc文件,第二个前缀描述符为空,可以直接使用。2,可以格局可执行程序的路径放置,在代码中用相对路径使用。使用的时候,可以在代码中这样写。或者直接写成绝对路径。

zanglengyu的专栏 665

Alcatraz资源管理图片与本地化字符串优化

在Xcode开发过程中,资源管理往往被忽视,却直接影响应用性能与用户体验。本文将聚焦Alcatraz项目中的图片资源与本地化字符串管理,通过实例讲解如何构建高效、可维护的资源系统。 ## 图片资源管理策略 Alcatraz采用多分辨率图片适配方案,所有图标均提供标准、@2x和@3x三种分辨率版本,确保在不同设备上显示清晰。项目图片资源主要集中在根目录与Resources文件夹: [![眼睛图...

gitblog_01081的博客 383

5.5 图片资源管理

本文介绍了Flutter应用中图片加载和资源管理的核心方法。主要内容包括:1)Asset资源管理,通过pubspec.yaml注册资源,支持多分辨率适配和动态加载;2)网络图片加载方案,包括Image.network基础用法、CachedNetworkImage缓存优化和FadeInImage淡入效果;3)SVG矢量图处理,使用flutter_svg库实现矢量图渲染;4)图片缓存管理,包括内存缓存配置、清理策略和预加载技术;5)图片选择与裁剪功能,通过image_picker和image_cropper实现

liuyinghui523的专栏 40

UI库中的图片资源管理

UI库中使用一个图片资源管理类来对UI库中的所有图片进行统一的管理。 设计模式:单件模式 优点: 可以将多个小图片合并成一张大图片,最后再进行压缩,节省图片资源的大小。可以很方便的替换图片资源。这种思路和VC中的资源管理器的设计思路一样,图片资源可以统一管理。应用程序不用频繁加载图片资源,减少系统内存的分配次数,减少内存碎片。可以提高图片绘制效率。由于图片在应用程序启动时就已加载到内存...

weixin_30332705的博客 132

Lynx资源管理图片、字体、本地化资源的优化加载指南 [特殊字符]

在当今跨平台应用开发中,高效的资源管理是提升用户体验的关键因素。Lynx作为一个功能强大的开源项目,提供了完整的资源管理解决方案,能够帮助开发者优化图片、字体和本地化资源的加载性能。本文将详细介绍Lynx资源管理的核心功能和优化策略,让你的应用加载更快、运行更流畅。 ## 什么是Lynx资源管理系统? 🤔 Lynx资源管理系统是项目中的一个重要模块,负责处理应用运行过程中所需的各种静态资源

gitblog_00506的博客 711

多毫米波雷达跟踪多目标.zip

多毫米波雷达跟踪多目标.zip

上一篇: Eclipse RCP 中的常用小技巧
下一篇: Eclipse中类型扩展机制分析
leng1987021
博客等级 码龄18年 8粉丝 137原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值