最近有几张真彩色图片需要转换为GIF图片,直接用GDI+位图转换存储效果太差,网上搜索半天,也没找到完全合适的,有关Delphi语言和GDI+转换的详细资料更是没发现,只好自己写了几个Delphi类,发表在这里供大家参考。
下面是几个真彩色转索引图像类的完整代码:
代码中共定义了四个类:TColorNode是一个八叉树颜色节点类;TIndexTree是图像转换基类,支持真彩色转换256色和16色图像,绝大部分转换工作都写在了这个类中;TBitmapIndexTree是Delphi的TGraphic对象转换类;TGpBitmapIndexTree是GDI+位图转换类。代码没做大的优化,除了一个数据拷贝过程TIndexTree.CopySourceData和像素色彩的调色板匹配方法TIndexTree.GetIndexColor采用了BASM代码,其余都采用纯Delphi代码(TIndexTree.GetIndexColor也有一个被注销的纯Delphi代码,可供参考)。
下面是GDI+32位PNG图像转256色图片例子代码(保存代码没在例子中):
效果图如下,左边是PNG源图,中间是转换后存储的白色背景GIF图片(设置ColorBackground属性可改变背景颜色),右边是没经过转换直接存储的GIF图片:



下面是TJPEGImage对象真彩色转256色图像例子:
效果图如下(上边是JPEG源图,下边是转换后的256色GIF图像):


代码中所用Gdiplus单元下载地址及BUG更正见文章《GDI+ for VCL基础 -- GDI+ 与 VCL》。
建议和指导请来信:maozefa@hotmail.com
分享到:
相关推荐
Delphi作为流行的Windows应用程序开发工具,其VCL库与GDI接口紧密结合,使得开发者能够方便地利用GDI的功能。 首先,我们要理解图像翻转的原理。图像的镜像翻转主要有两种类型:水平翻转(也称为左右翻转)和垂直...
GDI++ for DELPHI是一个专为DELPHI开发者设计的图形设备接口(GDI)扩展库,它提供了丰富的图形绘制功能,使开发者能够利用更高级的图形处理技术来增强应用程序的界面美观度和交互性。GDI++是基于Windows API的GDI...
在Delphi XE10.2版本中,开发者可以利用GDI+库来增强图形处理功能,提升应用程序的视觉效果。GDI+是Microsoft提供的一个图形设备接口,它基于GDI(Graphics Device Interface),但提供了更多的图形绘制和图像处理...
——在GDI+ Painter应用程序中添加颜色、钢笔和画笔 总结 第5章 颜色、字体和文本 5.1 访问Graphics对象 5.2 使用颜色 5.3 使用字体 5.4 使用文本和字符串 5.5 渲染文本的质量和性能 5.6 高级版式 5.7 一个...
GDI+提供了丰富的绘图功能,包括二维几何图形、曲线、文本、图像以及颜色管理等,使得开发者能够创建出具有高质量视觉效果的应用程序。 这本书《GDI+程序设计》显然是一个深入探讨GDI+技术的教程,它可能包含了GDI+...
总的来说,GDI+ Delphi接口单元为Delphi开发者提供了一个强大而易用的工具,使他们能够充分利用GDI+的强大功能,创建出具有高质量图形和图像效果的应用程序。这个接口简化了与底层系统交互的过程,降低了开发复杂性...
为了实现上述功能,我们需要在Delphi中创建一个新的VCL Forms应用程序,然后导入GDI+的相关单元。在窗体的`OnCreate`事件中初始化GDI+,在`OnPaint`事件中绘制图片和处理透明度,在`OnNCCalcSize`事件中计算并设置...
Delphi GDI+是Microsoft图形设备接口(GDI)的一个增强版本,专为Delphi开发者设计,用于在Windows平台上创建更高效、更丰富的图形和图像处理应用。GDI+引入了面向对象的编程模型,提供了矢量图形、位图操作、文字...
综上所述,这个程序提供了一个使用Delphi和GDI+进行图像任意角度旋转的解决方案,不仅考虑了旋转后的尺寸计算,还便于后续的图像处理操作。开发者可以通过研究源代码,学习如何在Delphi中高效地集成和使用GDI+进行...
GDI+(Graphics Device Interface Plus)是微软Windows操作系统中用于图形设备接口的增强版本,它为开发者提供了一套丰富的绘图工具,使得在Windows应用程序中创建、管理和显示图形变得更加便捷和高效。GDI+不仅继承...
DephiXE2之后的开发可以直接通过uses GDIPAPI, GDIPOBJ,来使用GDI+开发。 而Delphi7和Delphi2010没有这两个文件。 通过百度查找,GDIPlus1.2提供的是GDIPlus, GDIPlusHelpers。这样必然导致XE的代码需要进行调整...
使用GDI+进行图形缩放、拖动,多种图片格式支持,仅简单示例。 问题源贴:http://bbs.csdn.net/topics/390638094
书中不仅介绍了GDI+的基础知识,还着重讲解了如何将GDI+技术应用于实际开发中,尤其适合那些希望在应用程序中实现高级图形处理和自定义控件开发的中高级程序员。 另外,书中提到了.NET Framework对编程的变革作用,...
Delphi是一款强大的Windows应用程序开发工具,而GDI+(Graphics Device Interface Plus)是微软提供的图形处理库,提供了丰富的图形绘制和图像处理功能。 首先,我们需要了解遮罩动画的基本原理。遮罩动画通常涉及...
通过阅读本书,读者不仅可以掌握GDI+的基本概念,还能学会如何在实际项目中应用这些技术,提升Windows应用程序的图形表现力。 《GDI+图形程序设计》的PDF文件包含了详细的章节结构,可能包括以下内容:GDI+概述、...
《Delphi与GDI+深度探索》 在编程领域,Delphi是一款强大的对象 Pascal 编程工具,以其高效、易用而备受开发者喜爱。而GDI+(Graphics Device Interface Plus)是微软推出的一种图形设备接口,它扩展了传统的GDI...
通过GDI+,你可以创建自定义的控件,实现复杂的用户界面,或者在应用程序中添加图形输出功能。 1. **Graphics类**:这是GDI+的核心类,用于实际的绘图操作。你可以从Graphics对象上绘制线条、曲线、矩形、椭圆、...
GDI+ 是微软开发的图形设备接口,它提供了丰富的图形绘制、图像处理和文本渲染功能,广泛应用于 Windows 应用程序开发。然而,在某些情况下,直接使用官方提供的 GDI+ 组件在 Delphi 2010 或更低版本中可能无法正常...
GDI+(Graphics Device Interface Plus)是微软推出的一种图形设备接口的增强版本,它为Windows应用程序提供了丰富的2D图形、图像处理和文本渲染能力。GDI+开发包,即GDI+ SDK,是用于帮助开发者利用GDI+功能进行...
第四部分讲述了GDI+功能在Web应用程序中的使用,如在Internet上提供GDI+图像、创建***服务器控件和使用GDI+创建Web服务等。这部分内容是将GDI+编程技能拓展到Web开发领域的关键指导。 书中还提供了一些示例代码,...