急:GDI+ 怎么获取一张gif图的调色板信息 并 为一张gif图设置调色板信息

LemonnnLee 2018-01-12 11:37:18
问题描述:
1.现有一张gif图,我想知道它都用了哪些颜色,具体的RGB值,用GetPalette()方法
尝试获取,但是每次都获取不到,只能得到大小。

int nPaletteSize = m_image->GetPaletteSize();
ColorPalette *palette;
m_image->GetPalette(palette, nPaletteSize);

2.想保存一张gif图,图片的颜色值是gif图表示不出来的(所以影响画质),目前尝试给调色板换颜色。不知道这样做有没有用。每一帧保存成其他格式的图片都很清晰,可只要保存为gif就不清晰了。

如果你比较懂的话,拜托指教一下,实在是没折了。查了好久了,还是没法子。千万别只给我罗列一大堆函数,求具体的解决方案。
...全文
634 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LemonnnLee 2018-02-24
  • 打赏
  • 举报
回复
问题已经解决,GDI+是解决不了得。使用第三方库,cximage
paschen 2018-01-12
  • 打赏
  • 举报
回复
第1章 Visual C++与数字像处理 1 1.1 数字像处理概述 2 1.1.1 像与数字像 2 1.1.2 数字像处理研究的内容 4 1.1.3 数字像处理的应用 6 1.2 Visual C++概述 8 1.2.1 C++语言简介 8 1.2.2 Visual C++简介 16 1.2.3 Visual C++ 2005 集成开发环境 19 1.3 在Visual C++中处理数字像 22 1.3.1 位调色板 22 1.3.2 形设备接口 23 1.3.3 OpenCV 26 1.4 本章小结 26 第2章 Visual C++ 2005基础知识 27 2.1 利用向导生成应用程序 28 2.1.1 创建新项目 28 2.1.2 编译并运行工程 35 2.2 添加资源 36 2.2.1 新建资源 36 2.2.2 导入资源 38 2.3 MFC编程基础 38 2.3.1 MFC应用程序框架 39 2.3.2 Windows消息和事件驱动 40 2.3.3 常用消息 41 2.3.4 MFC的消息映射 42 2.4 消息与事件响应 44 2.4.1 添加类 44 2.4.2 添加类成员 45 2.4.3 添加消息响应 46 2.4.4 添加事件 47 2.4.5 添加函数重写 48 2.4.6 手动添加消息响应 50 2.5 对话框的使用 51 2.5.1 创建并编辑对话框资源 51 2.5.2 模式对话框和无模式对话框 55 2.5.3 消息对话框 57 2.5.4 共用对话框 59 2.6 常用控件的使用 64 2.6.1 按钮类控件 64 2.6.2 文本框 67 2.6.3 列表框 70 2.6.4 组合框 74 2.6.5 静态类控件 76 2.7 菜单栏和工具栏 77 2.7.1 菜单栏的使用 77 2.7.2 工具栏的使用 83 2.8 本章实例:简单的画程序 87 2.8.1 实例预览 88 2.8.2 概要设计 88 2.8.3 完成实例编码 91 2.9 本章小结 98 第3章 认识色彩空间 99 3.1 颜色的基本知识 100 3.1.1 颜色的定义 100 3.1.2 颜色的属性 102 3.2 常用色彩空间简介 103 3.2.1 RGB颜色空间 103 3.2.2 CMY/CMYK颜色空间 105 3.2.3 HSV/HSB(HSI/HCI/HSL) 颜色空间 106 3.2.4 CIE系列颜色空间 109 3.2.5 YUV/YCbCr颜色空间 111 3.3 色彩空间的转换方法 112 3.3.1 RGB转换到HSV的方法 113 3.3.2 RGB转换到HSI的方法 114 3.3.3 RGB转换到YUV的方法 115 3.3.4 RGB转换到YCbCr的方法 116 3.4 本章实例:Photoshop 色彩编辑器 118 3.4.1 需求分析 118 3.4.2 概要设计 119 3.4.3 完成实例编码 121 3.5 本章小结 130 第4章 像文件格式 131 4.1 像文件概述 132 4.1.1 像文件 132 4.1.2 像文件的一般结构 132 4.1.3 像文件的常用参数 133 4.2 BMP文件格式 134 4.2.1 文件结构 135 4.2.2 文件头和信息头 135 4.2.3 主要参数 136 4.3 GIF文件格式 136 4.3.1 GIF格式简介 137 4.3.2 GIF文件结构 137 4.3.3 GIF文件块的结构 138 4.4 PNG文件格式 142 4.4.1 PNG格式简介 142 4.4.2 PNG文件结构 143 4.4.3 PNG中的关键数据块 144 4.5 像的压缩编码 146 4.5.1 Huffman编码 147 4.5.2 LZW编码 148 4.5.3 行程编码 151 4.5.4 离散余弦变换 151 4.6 JPEG文件格式 153 4.6.1 JPEG文件概述 153 4.6.2 JPEG编码/解码的理论基础 153 4.6.3 JPEG文件的格式 160 4.7 本章实例:JPEG解码程序 163 4.7.1 概要设计 163 4.7.2 完成实例编码 169 4.8 本章小结 188 第5章 使用DIB处理数字像 189 5.1 设备相关位和设备 无关位 190 5.1.1 设备相关位(DDB) 190 5.1.2 设备无关位(DIB) 190 5.2 CBitmap类 190 5.2.1 创建DDB 191 5.2.2 CBitmap中的成员函数 193 5.2.3 应用DDB显示像 193 5.2.4 应用DDB显示大像 195 5.3 进一步了解DIB 203 5.3.1 DIB的结构 203 5.3.2 DIB信息段 203 5.3.3 位数据 205 5.3.4 与DIB有关的函数 206 5.4 本章实例:DIB类的封装 208 5.4.1 设计 208 5.4.2 构造函数 210 5.4.3 DIB位的显示 214 5.4.4 BMP文件的存储 215 5.5 本章小结 216 第6章 使用GDI+处理数字像 217 6.1 GDI+简介 218 6.1.1 GDI+概述 218 6.1.2 GDI+的结构 218 6.2 在Visual C++中应用GDI+ 219 6.2.1 GDI+ 在Visual C++ 2005 中的配置方法 219 6.2.2 在Visual 6.0中使用GDI+ 221 6.3 GDI+基础 222 6.3.1 Graphics类 222 6.3.2 GDI+的基本数据类型 225 6.3.3 GDI+中的颜色 226 6.4 GDI+处理像的基本方法 228 6.4.1 GDI+像类 228 6.4.2 创建像对象 229 6.4.3 像的显示和缩放 232 6.4.4 像的基本处理方法 237 6.5 处理像的色彩 244 6.5.1 ColorMatrix结构体 244 6.5.2 改变像的透明度 245 6.5.3 将像转换为灰度 249 6.5.4 改变像的亮度 251 6.5.5 改变像的对比度 253 6.6 本章实例:播放GIF动画 255 6.6.1 播放原理分析 255 6.6.2 处理过程 256 6.6.3 具体实现 257 6.7 本章小结 260 第7章 使用OpenCV处理 数字像 261 7.1 OpenCV简介 262 7.1.1 OpenCV概述 262 7.1.2 OpenCV的特点 263 7.1.3 OpenCV的命名规则 263 7.1.4 OpenCV的应用举例 264 7.2 OpenCV的安装与配置 266 7.2.1 OpenCV 在Visual C++ 6.0 下的安装与配置 266 7.2.2 OpenCV 在Visual C++ 2005 下的安装与配置 268 7.3 OpenCV的结构 271 7.3.1 OpenCV的体系结构 271 7.3.2 OpenCV的函数结构 271 7.3.3 OpenCV的功能结构 273 7.3.4 OpenCV的数据结构 274 7.4 本章实例:利用OpenCV 显示像 275 7.4.1 像文件的载入与显示 275 7.4.2 像文件的创建、 保存和复制 277 7.5 本章小结 282 第8章 常见像显示特效 283 8.1 显示特效概述 284 8.1.1 显示特效基础 284 8.1.2 显示特效过程 286 8.1.3 显示特效类 287 8.2 扫描显示特效 289 8.2.1 特效预览 289 8.2.2 基本原理和实现方法 289 8.2.3 编程实现 290 8.3 移动显示特效 292 8.3.1 特效预览 292 8.3.2 基本原理和实现方法 292 8.3.3 编程实现 293 8.4 百叶窗显示特效 295 8.4.1 特效预览 295 8.4.2 基本原理和实现方法 295 8.4.3 编程实现 297 8.5 栅条显示特效 298 8.5.1 特效预览 298 8.5.2 基本原理和实现方法 299 8.5.3 编程实现 300 8.6 马赛克显示特效 301 8.6.1 特效预览 301 8.6.2 基本原理和实现方法 302 8.6.3 编程实现 303 8.7 雨滴显示特效 304 8.7.1 特效预览 304 8.7.2 基本原理和实现方法 304 8.7.3 编程实现 305 8.8 本章实例:类似ACDSee 的像浏览工具 306 8.8.1 实例预览 306 8.8.2 概要设计 307 8.8.3 完成实例编码 311 8.9 本章小结 324 第9章 像的点运算 325 9.1 灰度直方 326 9.1.1 灰度直方 326 9.1.2 基本原理 328 9.1.3 编程实现 328 9.2 灰度线性变换 338 9.2.1 基本原理 338 9.2.2 编程实现 341 9.3 灰度非线性变换 344 9.3.1 灰度对数变换 344 9.3.2 灰度幂次变换 350 9.3.3 灰度指数变换 353 9.4 灰度阈值变换 354 9.4.1 基本原理 355 9.4.2 编程实现 355 9.5 灰度拉伸 357 9.5.1 基本原理 358 9.5.2 编程实现 360 9.6 灰度均衡 364 9.6.1 基本原理 364 9.6.2 编程实现 365 9.7 本章小结 366 第10章 对像进行几何变换 367 10.1 像几何变换的基本理论 368 10.1.1 像几何变换概述 368 10.1.2 像几何变换的数学描述 370 10.2 像的平移变换 371 10.2.1 效果预览 371 10.2.2 基本原理 371 10.2.3 编程实现 373 10.3 像的镜像变换 377 10.3.1 效果预览 377 10.3.2 基本原理 378 10.3.3 编程实现 379 10.4 像的转置 383 10.4.1 效果预览 383 10.4.2 基本原理 384 10.4.3 编程实现 385 10.5 像的缩放 386 10.5.1 效果预览 387 10.5.2 基本原理 387 10.5.3 插值算法介绍 388 10.5.4 编程实现 392 10.6 像的旋转 398 10.6.1 效果预览 398 10.6.2 基本原理 398 10.6.3 编程实现 403 10.7 使用GDI+实现像的 几何变换 409 10.7.1 GDI+的变换操作 409 10.7.2 平移 410 10.7.3 缩放 412 10.7.4 旋转 413 10.7.5 变换的组合 417 10.7.6 利用矩阵进行其他 几何变化 419 10.8 本章小结 422 第11章 像的增强处理 423 11.1 像的简单平滑 424 11.1.1 邻域处理的基本概念 424 11.1.2 像的简单平滑原理 427 11.1.3 像简单平滑的算法实现 427 11.2 像的高斯平滑 431 11.2.1 平滑线性滤波器 432 11.2.2 高斯平滑的原理 432 11.2.3 高斯平滑的算法实现 433 11.3 像的中值滤波 436 11.3.1 统计排序滤波器 437 11.3.2 像中值滤波的原理 437 11.3.3 像中值滤波的算法实现 439 11.4 应用OpenCV对像 进行平滑处理 445 11.4.1 函数描述 445 11.4.2 概要设计 446 11.4.3 编码实现 446 11.5 拉普拉斯边缘增强 452 11.5.1 像的锐化 452 11.5.2 像拉普拉斯锐化的原理 452 11.5.3 像拉普拉斯锐化的 算法实现 453 11.6 Sobel边缘细化 457 11.6.1 Sobel边缘细化的原理 457 11.6.2 Sobel边缘细化的 编程实现 459 11.7 本章小节 464 第12章 常见滤镜效果 465 12.1 像的反色效果 466 12.1.1 底片效果 467 12.1.2 实现方法及原理 467 12.1.3 编程实现 467 12.2 像的雕刻效果 469 12.2.1 雕刻效果 469 12.2.2 实现方法及原理 469 12.2.3 编程实现 470 12.3 像的黑白效果 472 12.3.1 黑白效果 472 12.3.2 实现方法及原理 473 12.3.3 编程实现 473 12.4 像的雾化效果 475 12.4.1 雾化效果 475 12.4.2 像点阵的随机化处理 476 12.4.3 编程实现 476 12.5 像的马赛克效果 483 12.5.1 马赛克效果 483 12.5.2 实现方法及原理 483 12.5.3 编程实现 484 12.6 像的素描效果 487 12.6.1 素描效果 487 12.6.2 实现方法及原理 487 12.6.3 编程实现 487 12.7 本章小结 490 第13章 边缘检测和轮廓跟踪 491 13.1 边缘检测 492 13.1.1 边缘检测的基本概念 492 13.1.2 常规边缘检测 493 13.1.3 带方向的边缘检测 498 13.1.4 拉普拉斯算子 503 13.2 Hough变换 509 13.2.1 Hough变换的原理 509 13.2.2 编程实现 515 13.3 种子算法 520 13.3.1 算法介绍 520 13.3.2 编程实现 523 13.4 轮廓跟踪 526 13.4.1 区域表示方法 526 13.4.2 单区域跟踪 536 13.4.3 多区域跟踪 539 13.5 本章实例:应用OpenCV 进行边缘检测 541 13.5.1 Canny准则 541 13.5.2 Canny算法 542 13.5.3 在OpenCV中使用Canny 算法 543 13.6 本章小结 548 第14章 像的形态学处理 549 14.1 数学形态学 550 14.2 一些必要的概念和 符号约定 550 14.3 像的腐蚀 554 14.3.1 腐蚀原理 554 14.3.2 编程实现 557 14.4 像的膨胀 562 14.4.1 膨胀原理 562 14.4.2 编程实现 565 14.5 腐蚀和膨胀的性质及应用 568 14.5.1 腐蚀和膨胀的代数性质 568 14.5.2 腐蚀和膨胀的应用 571 14.6 开运算和闭运算 577 14.6.1 开运算 578 14.6.2 闭运算 579 14.6.3 编程实现 580 14.6.4 开运算和闭运算的 代数性质 582 14.7 像形态学的其他运算 584 14.7.1 击中/不击中运算 584 14.7.2 细化处理 588 14.8 本章实例:应用OpenCV 进行形态学处理 592 14.8.1 函数描述 592 14.8.2 概要设计 592 14.8.3 编码实现 593 14.9 本章小结 598 第15章 像分割与目标识别 599 15.1 像的分割 601 15.1.1 基于幅度的像分割 601 15.1.2 基于区域的像分割 606 15.1.3 基于形态学分水岭的 像分割 611 15.2 像的匹配 614 15.2.1 基本概念 614 15.2.2 模板匹配算法 615 15.2.3 序贯相似性检测算法 616 15.2.4 幅度排序算法 618 15.3 模式的识别 620 15.3.1 基本概念 620 15.3.2 统计模式识别 621 15.3.3 其他模式识别方法简介 627 15.4 本章实例:静态人脸 检测程序 628 15.4.1 人脸检测概述 628 15.4.2 算法分析 629 15.4.3 应用OpenCV进行 人脸检测 633 15.5 本章小结 640
LEADTOOLS Imaging Pro SDK是一个支持150多种光栅像格式(JPEG,GIF,TIFF...)的应用程序接口(API) 、C++类库、 ActiveX与VCL的工具箱;拥有超过2000种像处理效果、像变换及过滤、多种加载与观察选项、TWAIN扫描、打印、微型浏览器、Internet及数据库成像功能、压缩、屏幕捕获、绘、颜色转换、Internet/intranet成像、形转换、共用对话框等;同时也包括开发者所需要的集成绘功能以及应用中的数字绘功能。 0 特征综述 About Feature 声明:本产品中文介绍为慧都控件网版权所有,未经慧都公司书面许可,严禁拷贝、转载! 文件格式支持 采用工业标准和专有压缩技术,可同时支持150多种像文件格式以及sub-格式的加载、保存和转换。另外,采用LEADTOOLS能添加更多的格式支持,例如采用LEADTOOLS PDF插件,即能实现对PDF文件的加载、保存和转换支持。 压缩支持 支持多种工业标准的压缩技术,包括JPEG、CCITT、LZW (使用于GIF及某些TIFF文件)、ZIPLIB (使用于PNG文件)、Huffman算法、RLE及紧缩位压缩算法(Packbits)。另外,采用LEADTOOLS JPEG2000 插件和 LEADTOOLS CMW 插件可添加JPEG2000 及先进的CMW压缩技术。 TWAIN扫描支持 TWAIN 驱动几乎包含在所有的扫描仪及其它像采集设备中,同时随着最新的发展技术,TWAIN 也是性能良好与高可靠性驱动的最佳选择。当前LEADTOOLS 的光栅像产品支持所有包括在TWAIN v1.9 规范中的功能。 屏幕捕获 具有强大的屏幕捕获功能,能从文件、菜单、窗口、不同形状的屏幕客户区域等捕获资源。屏幕捕获工具是极其有用的,特别是在文档编辑及需提供其它像输入方式的时显得更为重要。 数据库支持 同时提供高端或低端的数据库支持,其中包括绑定VB数据控件功能、OLEDB 接口、ODBC 接口以及低端加载和保存像到内存的功能。 Internet 支持 提供几种不同级别Internet支持,包括:可封装到CAB文件的对象、能在web服务器端构造的对象、从URL或存储器装载像的功能、支持HTTP 和FTP的控件、解析并加载到web服务器端的文件控件,以及用来构造功能强大、通过TCP/IP发送远程过程调用的客户服务器应用程序控件。 像优化 基于具体优化选项,LEADTOOLS 提供了某些优化像文件格式以及通过保存像时使用合适的每个像素所占用的位来减小像文件大小的功能。 显示与显示效果 对像如何被显示进行完全地控制,包括缩放、展开、像显示的区域控制以及超过2000种的特效效果。LEADTOOLS 甚至包含了一个平铺窗口,这样你能方便地显示像概要及选用适合最终用户的卷起、平铺方案。 打印支持 由于能使用与显示像同样的代码来进行打印,所以打印像与显示像同样容易。你能控制像打印的尺寸和位置;另外,能结合Windows GDI函数同LEADTOOLS打印一起使用,提供在同一页上打印文本和多个像的灵活性。 像处理 超过200种象处理功能,分为四个基本类别:过滤、变换、色彩转换及绘。在LEADTOOLS中的大多数像处理功能支持不同着重区域,允许像的某一部份被处理。通过添加更多用于数字绘的功能,LEAD在LEADTOOLS Raster Imaging Pro中提供了包含大量用于数字绘功能,包括笔刷、形状、纹理的创建与使用以及更多。 色彩转换 为确保你能把像从一种格式转换到另一种格式,或是在任何其它显示设备上显示象,LEADTOOLS 包含了强大的色彩转换功能。该色彩转换功能包括:支持8 种以上色彩平滑过渡算法、多种调色板选项以及把像数据从任何支持的每个像素所占用的位转换到其他支持的每个像素所占用的位功能。支持的数值有1-8位色或灰度、16位色、24 位色和32 位色。如果你需要12或16位灰度或48与64位色支持。 像公共对话框 LEADTOOLS 像公共对话框通过扩展Windows公共对话框以提供具体的像处理功能,节省了大量的繁琐编程时间,同时能给最终用户提供一个一致的外观和感觉。这个公共对话框针对像处理、变换及特效提供专业的像公共对话框功能。 数字绘 数字绘是任何想给应用程序增加数字绘功能所必须的。使用 LEADTOOLS 的数字绘特性,开发者可以创建一个完整的像编辑或设计应用程序,也可简单地添加这些功能的一部分到现有的应用程序中。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧