Delphi工具之Image Editor

Delphi Image Editor是一个工具,可用它来创建并编辑位图(.bmp)、图标(.ico)和光标(.cur),还可以用它创建资源工程,将多个位图、图标和光标包含到单个资源文件(.RES)中,再将该资源文件加到Delphi工程中供需要时使用。如下图,是正在编辑中的Image Editor。

image

Note

所有的Windows图像都是位图,无论它们是真正的Windows位图文件(.bmp),还是图标或光标。在我们的讲解中,将所有图像都称为位图。Image Editor只能处理Windows位图文件,它不支持其他文件格式,如PCX,TIFF,JPEG和GIF。

可从开始菜单中选择Image Editor菜单项启动Image Editor,也可以从Delphi的主菜单的【Tools | Image Editor】菜单项打开(如下图)。Image Editor是一个单独的程序,不必在Delphi IDE中运行它。

Image Editor的各个部分介绍

image

上图中将所有的工具箱中的工具名称列出,请熟悉它们。

Marquee选区工具和Lasso套索工具的作用一样的,前者用于选定矩形区域,后者用于任意形状的选择。

当一个区域被选定后,用户可剪切或复制该区域内的图像。用Marquee和Lasso工具选定区域,将鼠标光标移动到该区域内(鼠标光标变成如下图的手型光标),拖动鼠标。区域内的图像就会随鼠标的拖动而移动。

image

当剪切一个区域或移动它时,原始区域以当前背景色填充。

Note

进行粘贴时,若选定了一个区域,则要粘贴的图像会随所选区域的大小而伸缩。如下图:

image

在使用Eraser橡皮工具时,鼠标的左右键的用法与使用其他工具时正好相反。使用Eraser时,鼠标左键以背景色绘图,鼠标右键以前景色绘图。

Text工具能使用户在图像上书写文字,书写文字时使用当前正文设置,点击主菜单【Text】可设置字体的属性和正文对齐方式,如下图:

image

Tip

在画矩形时,可按住Shift键,将矩形变成正方形。同样,用椭圆工具或带填充椭圆工具可以画圆,只需在拖动鼠标时按住Shift键。同时使用Shift键和画线工具,可以画直线(水平线、垂直线或45°直线)。

image

要改变前景色,可用鼠标左键点击调色板上的颜色。

要改变背景色,可用鼠标右键点击调色板上的颜色。

还可以使用工具箱中的【Eye Dropper吸管】工具获取图像上的颜色,将该工具鼠标移到图像上所选颜色区域,要设置前景色,点击左键;要设置背景色,点击右键。

当用绘图工具绘图时,既可以使用前景色绘图也可以使用背景色绘图。用前景色绘图时使用鼠标左键;用背景色绘图时使用鼠标右键。

Note

【Text文字】工具只能使用前景色。不能用背景色来书写文字;如果要用背景色,则必须将前景色改成背景色的颜色,然后再书写文字。

透明色和反向色

在绘制图标和光标时,可以选择透明色。当使用透明色时,图标下面的背景能透过透明色显示出来。

image

是否使用透明色取决于个人的要求和所创建的特定图标。创建光标时,一般总是使用透明色作为光标的背景色

选择反向色会使图表下面的背景颜色反向。反向色的使用不普遍,但需要时也可以使用。

当编辑图标和光标时,透明色和反向色都显示在调色板的旁边,它们是带颜色的正方形,有一个曲线从中穿过。

Note

缺省时,新建图标和光标资源的背景都是透明色。如下图:

image

缩放

在Image Editor中可以将位图放大。既可以用Zoom工具来放大位图,也可以通过View菜单进行。要用Zoom工具把图像的某个部位放大,可先从工具箱中选择Zoom工具,然后拖动围住要放大部位的矩形边界。拖动鼠标时,要放大部位的图像会随矩形边界的扩大而放大。这样就能更好地修改位图中的每个细节。

通过【View】菜单中的选项也可以缩放位图,如下图:

image

  • Zoom In或【Ctrl + I】,图像会按预先给定的比例放大;
  • Zoom Out或【Ctrl + U】,图像可缩放回去;
  • Actual Size或【Ctrl + Q】,显示实际大小。

当用户创建光标或图标时,Image Editor视窗分裂为左右两半。如下图:

image

尽管左右两边的图像都能放大,但通常都是把放大了的图像放在左边窗口,实际尺寸的图像放在右窗口。

 

线宽选项板(笔触选项板)

线宽选项板位于工具箱的正下方。根据当前所选工具,线宽选项板显示线条的宽度或刷子笔触形状供用户选择。点击想要的线宽或刷子形状,之后的画图操作都使用新的线条宽度或刷子形状。如下图:

image   image 

 

位图文件

用户可以从头创建一个位图,也可以调入一个已存在的位图来修改。要打开已存在的位图文件,可从主菜单选择【File | Open】菜单项来打开要修改的位图文件。

要创建一个新位图,可从主菜单中选择【File | New】菜单项,然后从弹出的菜单上选择【Bitmap File】,

image

此时会显示Bitmap Properties对话框,如下图:

image

在Bitmap Properties对话框中可设置位图的尺寸(像素为单位)以及颜色数(2色、16色、256色)。

Note

Image Editor不支持大于256色的位图。

选择好所要的尺寸和颜色数后点击OK,编辑器窗口中就会显示一幅空白位图;这时就可以开始绘图。如下图:

image

完成了位图的编辑后,选择【File | Save】或【File | Save As】将该位图文件保存到磁盘上。

当创建或编辑位图文件时,Image Editor的主菜单上有一个菜单项叫做【Bitmap】,但只有一个菜单项【Image Properties】。选择此菜单项,打开一个Bitmap Properties对话框(就像创建新位图文件那样),如下图:

image

用户可在Bitmap Properties对话框中改变位图的尺寸和颜色数。

Note

创建新位图时显示的Bitmap Properties对话框与编辑位图时显示的Bitmap Properties对话框有一点不同。当编辑一个位图时,Bitmap Properties对话框上有一个Stretch复选框,这个复选框用于改变位图尺寸;若不选中Stretch复选框,则当位图尺寸被改变时,位图不随尺寸的改变而伸缩;若选中Stretch复选框,则位图会随尺寸的改变而扩展或收缩。位图的扩展与收缩不很精确,因此效果有时不理想。

总之,用Image Editor创建或编辑位图文件就这么简单。虽然在创建或编辑简单位图时,Image Editor的性能可以满足需要;但要用它来创建或编辑复杂图像就不太行了。

 

图标应用

创建图标也是一项艺术性的工作,但它不如创建全色位图时的艺术性强。多数时候用户能自己创建图标,但要创建出漂亮的图标仍需要很高的技巧。

Note

装入任何能找到的位图文件,将位图文件放大,仔细查看,从中获取创建漂亮图标的经验。创建3D图标需要多实践。

32位Windows中一个图标实际大小是一大一小两个图标。大图标的尺寸为32x32像素,可放置于About对话框中;并且应用程序的图标也可以使用大图标。当Windows资源管理器中文件列表窗被设置为大图标时也使用该大图标。如下图:

image

小图标的尺寸是16x16像素。应用程序标题栏上、Windows任务栏上、File Open对话框中都使用小图标;并且当文件列表窗被设置为小图标时,Windows资源管理器也使用小图标。大图标和小图标都存放在同一个图标文件中(.ico)。如下图:

image

Note

用户不必同时提供大图标和小图标。若只提供大图标,则当需要小图标时,Windows会将大图标缩小成小图标;但是,这样得到的小图标通常达不到用户所期望的效果。在这种情况下,用户可以创建小图标,从而自己控制应用程序的外观,而不依赖于Windows。

1)、创建新图标资源

要创建一个新图标资源,可从主菜单上选【File | New | Icon File (.ico)】,弹出Icon Properties对话框,如下图:

image

这个对话框使用户能选择图标的尺寸和颜色数。

Note

即使大图标和小图标都要创建,开始时也必须选择其中一种。例如,在创建新图标时,可以先创建大图标,待创建完大图标后,再创建它的小图标。

当在Image Editor中编辑图标时,Image Editor菜单栏上有一个叫【Icon】的菜单项,如下图:

image

【New】菜单项用于创建新的图标,例如,假设已经创建了大图标,可从主菜单选择【Icon | New】来创建小图标。

Tip

Icon Editor窗口上有一个New按钮,也可以用来创建新图标。用New按钮创建新图标比用主菜单速度快。

image

但选择New创建第二个图标时,也会显示Icon Properties对话框,如果头一个创建的是大图标,则缺省地选择小图标,用户只需点击OK就行了。

Tip

当大小图标同时出现时,可以使用Icon Editor窗口顶部的组合选择框来从一个图标切换到另一个图标。如下图:

image

2)、图标编辑选项

【Icon】菜单中的【Delete】菜单项使用户能将大图标或小图标从图标资源中删除,但不能删除图标资源中的最后一个图标。

【Icon】菜单中的【Test】菜单项显示Icon Tester对话框,其中显示图标的真实摸样。如下图:

image

Icon Tester可用于改变图标的背景色,因而用户可以查看图标使用不同背景色的效果。如果当前编辑的是大图标,则Icon Tester中显示大图标;如果当前编辑的是小图标,则小图标出现在Icon Tester对话框中。

 

光标应用

创建与编辑光标和创建与编辑图标没有很大的差别。光标只有两种颜色:白与黑(Image Editor不支持多色光标和动画光标)。

当编辑光标时,Image Editor菜单上会出现Cursor菜单项,如下图:

image

【Set Hot Spot…】菜单项用于设置光标的热点(Hot Spot)。热点是指光标上的一个专用像素,当使用光标时,Windows使用该专用像素来报告鼠标的坐标位置。例如,“+”字形光标的热点就是它的中心点;箭头形光标的热点就设置在箭头的顶点。要设置光标热点,可从主菜单选【Cursor | Set Hot Spot…】,显示出Set  Cursor Hot Spot对话框,在这个对话框中输入热点的X,Y坐标。

image

Tip

必须输入热点的准确X,Y坐标。在设置热点之前,将编辑光标移到光标上要设置成热点的像素点上,Image Editor状态栏上就会显示编辑光标所指点的X,Y坐标;记录下该X,Y坐标。

【Cursor | Test…】菜单项用于预览新建光标。点击此菜单项显示出Cursor Tester对话框,如下图:

image

按住鼠标的左键或右键在Cursor Tester上绘画。如果没有设置热点,则光标的热点会被缺省地设置在光标的左上角。

 

Image Editor快捷菜单

image

Image Editor的每一种编辑模式都有快捷菜单。鼠标的右键用于绘图,因此当鼠标光标位于图像上时,不能通过点击鼠标键来显示快捷菜单。当鼠标光标在编辑器窗口内但不在图像上时,点击鼠标右键可显示出快捷菜单。

 

创建资源工程

Image Editor还允许用户创建一个资源工程文件,来存储用户的全部位图、图标和光标。从主菜单选择【File | New | Resource File (.res)…】来创建资源工程文件,此时户i显示一个工程窗口,工程窗口是一个树形窗,它控制工程中的位图、图标和光标。如下图:

image

当用户保存资源文件时,Image Editor会把它编译成二进制资源文件。然后就可将该二进制资源文件增加到用户的Delphi工程中。

1)创建新资源

要为资源工程创建新资源,可从工程窗口快捷菜单选择【New】,

image

或从主菜单选择【Resource | New】菜单项,

image

然后就像前面创建单个资源文件时一样选择创建位图、图标或光标。此时会显示一个资源编辑器窗口,用户可使用绘图工具在其中创建所需资源。

2)编辑资源

创建好资源后,可能需要修改资源。可以通过编辑资源来实现对资源的修改。要编辑资源工程中的一个资源,在工程窗口树中找到该资源,然后在其资源名上双击鼠标,会出现一个资源编辑器窗口,用户即可在其中编辑该资源。

image

3)更名资源

在树形窗上选择要更名的资源,用鼠标点击它即可更名。也可从快捷菜单中选择【Rename】菜单项来更名。输入完新名字后,按Enter键或点击树上其他项,该资源名就会变成新名字了。

image  image

4)删除资源

要从资源文件删除一个资源,可点击工程树中的资源名来选择它,然后从快捷菜单中选择【Delete】菜单项,此时系统会提示用户:是否真的要删除该资源?如下图:

image

当点击Yes按钮后,该资源就会被删除。被删除的资源项不能再恢复。

5)从其他资源文件添加资源

要把包含在一个单独文件中的资源添加到资源工程中,没有简单的办法。只能先打开工程文件,然后打开包含要添加到工程中的资源的单个位图、图标或光标文件;从主菜单选择【Edit | Select All】来选择资源,然后选【Edit | Copy】将所选资源复制到剪贴板中。在资源工程中创建新资源,当资源编辑器显示出来后,选择【Edit | Paste】将剪贴板中的资源粘贴到新资源中。

Note

如果添加到资源工程中的对象是一个位图,则要检查该位图的属性,以便掌握该位图的宽度、高度和颜色数。在资源工程中创建新位图时需要这些设置。

Image Editor不是高级图像编辑器,但用它能完成许多图像创建任务。它易于使用,所创建的图标和光标大多质量超群。

这里推荐一款第三方的资源编辑器,Resource Builder非常好用。

Resource Builder - Windows 下非常有用的全功能资源编辑器,你可以用其内建的可视化编辑器来可视化编辑EXE、DLL、RC 以及 RES 等资源文件,并且完全支持Unicode。可以补丁、修改并更新可执行模块中的资源,象 EXE、DLL 和其他文件(PE-文件)。可以导入并浏览可执行文件中的资源创建仅含资源的 DLL 文件 (用于软件本地化)以及其他多种有用的强大功能。软件支持 Unicode、Unicode资源脚本、多语言的用户界面、用户自定义控件库、也支持 MENUEX资源。可以任意添加或删除资源,并且软件内置了强大的图片、图标编辑器。

如下图:

image

转载于:https://www.cnblogs.com/pchmonster/archive/2012/06/08/2541613.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序 获取当前用户城市信息(省市区)

步骤使用 wx.getLocation来获取位置授权:获取到设备当前的地理位置信息,这个信息是当前位置的经纬度使用其他第三方地图服务的API:获取当前位置是处于哪个国家,哪个城市等信息(eg:腾讯地图、百度地图&#…

小程序 获取当前用户地址及地图显示

步骤使用 wx.getLocation来获取当前位置: 注意;当用户取消位置获取授权之后,再次点击获取位子按钮小程序不会再提醒用户是否授权,这个时候最好自己弹出提示框让用户去设置页面开启授权设置. wx.getLocation({type: wgs84, //wgs返回 gps坐标, gcj02返回…

CSS3 box-shadow 属性

2019独角兽企业重金招聘Python工程师标准>>> 实例 向 div 元素添加 box-shadow&#xff1a; div { box-shadow: 10px 10px 5px #888888; } 亲自试一试 <!DOCTYPE html> <html> <head> <style> div { width:300px; height:100px; backgroun…

[译]Kinect for Windows SDK开发入门(二):基础知识 上

上篇文章介绍了Kinect开发的环境配置&#xff0c;这篇文章和下一篇文章将介绍Kinect开发的基本知识&#xff0c;为深入研究Kinect for Windows SDK做好基础。 每一个Kinect应用都有一些基本元素。应用程序必须探测和发现链接到设备上的Kinect传感器。在使用这些传感器之前&…

小程序 开发经验

项目目录理解components自定义组件库config一个公用的数据配置images本地、上传的图片放置pagespages目录存储小程序的每个页面&#xff0c;每个页面包含四个文档.json为配置文件.wxml 为模板文件&#xff0c;相当于HTML模板.wxss 为样式文件&#xff0c;相当于HTML的CSS样式表…

EasyUI,二级页面内容的操作

2019独角兽企业重金招聘Python工程师标准>>> 父页面获取子页面的数据 1.若仅仅是勾选&#xff0c;则将勾选的放到map中(key&#xff0c;value)&#xff0c;key是能验证数据唯一的字段&#xff0c;value就是勾选行的rowData&#xff1b; 再将map转换成json格式的字…

Javascript 对象二(Number、String、Boolean、Array、Date、Math、RegExp)

Javascript 对象二&#xff08;Number、String、Boolean、Array、Date、Math、RegExp&#xff09;Number 数字 对象String 字符串 对象Boolean 布尔 对象Array 数组 对象Date 日期 对象Math 算数 对象RegExp 正则表达式 对象Number 数字 对象 JavaScript中 数字不分为整数类型…

GItHub--Makedown语法学习(快速入门)

段落支持两种标题的语法&#xff1a;Setext 和 atx 形式Setext形式&#xff1a;利用 &#xff08;最高阶标题&#xff09;和 - &#xff08;第二阶标题&#xff09; 标题1标题2 ---Atx 形式&#xff1a;在行首插入 # 即可。可以增加一级标题、二级标题、三级标题、四级标题、…

转:ASP.NET MVC4细嚼慢咽---(5)js css文件合并

原文&#xff1a;http://blog.csdn.net/zx13525079024/article/details/19161777 MVC4增加了一些新功能&#xff0c;接下来&#xff0c;我们来研究下MVC4中的新增功能&#xff0c;我们在新建一个MVC4项目的时候&#xff0c;会发现在项目下多出了一个App_Start文件夹&#xff0c…

[读码时间] 完美拖拽

说明&#xff1a;代码取自网络&#xff0c;注释为原文所有&#xff01; <!DOCTYPE html> <html> <head><meta charset"utf-8" /><title>完美拖拽</title><style type"text/css">html, body {overflow: hidden;}…

Oracle 随机取某一列的值

2019独角兽企业重金招聘Python工程师标准>>> select t.recd_idfrom (select recd_id, ROWNUM RN from RT_TICKETS_BIS_RECD) twhere t.RN (select round(DBMS_RANDOM.VALUE(1, count(1)))from RT_TICKETS_BIS_RECD); 1) select round(DBMS_RANDOM.VALUE(1, count(1…

ZooKeeper典型应用场

为什么80%的码农都做不了架构师&#xff1f;>>> 数据发布与订阅&#xff08;配置中心&#xff09; 发布与订阅模型&#xff0c;即所谓的配置中心&#xff0c;顾名思义就是发布者将数据发布到ZK节点上&#xff0c;供订阅者动态获取数据&#xff0c;实现配置信息的集…

Mysql jdbc driver源码浅析(一)

jdbc操作实例代码 //1. 加载驱动Class.forName("com.mysql.jdbc.Driver");//2. 获取连接Connection connection DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbName", "userName", "password");Statement stmt conne…

用rem来做响应式开发

电脑版的商城昨晚做完了&#xff0c;今天赶着做手机端的&#xff0c;提到手机端的网站第一个想到的就是要 适应不同手机屏幕的宽度&#xff0c;保证在不同手机上都能正常显示给用户&#xff0c;我之前做这类网站都是无脑引进bootstrap的。但前一个项目做完之后我发现bootstrap虽…

Java 编程下 Eclipse 如何设置单行代码显示的最大宽度

Eclipse 下一行代码的默认宽度是 80 &#xff0c; 稍长一点的一行代码就会自动换行&#xff0c;代码可读性较差&#xff0c;我们可以自己在 Eclipse 对代码宽度进行设置。 设置路径为&#xff1a;【Window】→【Preferences】→【Java】→【Code Style】→【Formatter】&#x…

基于VMWare配置VxWorks开发环境

常规VxWorks的开发环境都是基于目标开发板或目标机来构建的&#xff0c;但并非所有人都具备这样的条件&#xff0c;所以本文主要介绍如何基于vmware来构建VxWorks开发环境。Step 1. 安装vmware 首先需要安装vmware, 版本没有什么限制&#xff0c;我装的是vmware 8.0&#xff0c…

keepalived实现高可用nginx反向代理的简单案例

写在前面&#xff1a;如果此文有幸被某位朋友看见并发现有错的地方&#xff0c;希望批评指正。如有不明白的地方&#xff0c;愿可一起探讨。案例拓扑图安装keepalived和nginx安装keepalived# yum -y install keepalived创建nginx用户组及nginx用户# groupadd -r nginx # userad…

gulp+PC前端静态页面项目开发

前言&#xff1a; 现在单页面很流行&#xff0c;但是在 PC 端多页面还是常态&#xff0c;所以构建静态页面的工具还有用武之地 gulp构建前言&#xff1a; 如今我们开发web网页的方式主要有几种&#xff0c;使用vue-cli、create-react-app、webpack、不借助构建工具等实现单页…

vue开发问题积累

mounted钩子中使用$refs出现undefined 原因&#xff1a;如果在DOM结构中的某个DOM节点使用了v-if、v-show或者v-for&#xff08;即根据获得的后台数据来动态操作DOM&#xff0c;即响应式&#xff09;&#xff0c;那么这些DOM是不会再mounted阶段找到的。 **解决方法&#xff1…

动态规划0—1背包问题

动态规划0-1背包问题 问题描写叙述&#xff1a;给定n种物品和一背包。物品i的重量是wi&#xff0c;其价值为vi&#xff0c;背包的容量为C。问应怎样选择装入背包的物品&#xff0c;使得装入背包中物品的总价值最大?对于一种物品&#xff0c;要么装入背包&#xff0c;要么不装。…