Cimage类下载地址:http://www.vbgood.com/viewthread.php?tid=53287&extra=page%3D2&page=4

相关讨论群:30417248 欢迎大家试用和讨论.

Cimage类是采用Visual Basic 6.0编写的一款图像和图形处理的类库(以图像处理为主),全面支持1位色\4位色\8位色\24位色\32位色(BMP格式),非BMP格式通过VB的stdpicture对象转换后进行处理,采用模拟指针和DIBSECTION相结合的技术,使处理速度大大提高,大部分绝对不会低于VC的90%,部分可能会优于VC。结合自行开发的canvas控件可以很好的显示和处理图像。现把主要功能介绍如下:

1、常用属性:

BackColor

设置背景色

ForeColor

前景色

ColorBit

DIB对象的颜色位数

DataPtr

DIB数据存放的首位地址

hDC

设备场景

Height

DIB的高度

Width

DIB的宽度

ImageDataSize

图像数据的总大小

ImageMode

图像的位数

ImageFormat

图像的格式

TextAlignment

文字对齐方式

TextHeight

指定文字的高度

TextWidth

指定文字的宽度

WidthBytes

DIB对象的扫描的行的宽度

HasWaterMark

是否有水印

HorizontalResolution

水平分辨率

HorizontalResolution

垂直分辨率

2、常用非图像图形处理方法:

Clone

clone一个新的完全一样的对象。包括选入其中的所有资源

CopyDataToCImage

仅复制DIB图像数据到指定的对象,指定的对象必须和原来的具有同样的颜色深度和大小。

CopyToClipBoard

把数据复制到剪贴板,如果cut为真的,则同时删除原对象中的数据。

FreePoint

模拟指针中的函数,对应MakePoint,学习自zyl910。

MakePoint

同上,通过这两个函数,用户可以自己编写扩展代码。

GetDCMaxX

得到DC中水平方向的可见范围

GetDCMaxY

得到DC中垂直方向的可见范围

GetNearestColor

得到指定的颜色与指定的颜色表中颜色最接近的颜色。

GetRGB

得到指定颜色的R\G\B分量

颜色模式转换函数

RGBToYUV YUVToRGB RGBToCMYK CMYKToRGB

YCbCrToRGB RGBToYCbCr RGBToHLS HLStoRGB

RGB模型到HLS模型,比网上流行的代码速度做了优化。

UsedColorsAmount

图片中使用的不同颜色个数。

GetSpecialColorTable

得到特定的调色板,包括流行色,网络安全色,半掉网屏,mspaint的调色板,灰度调色板等。

GetHistgramArray

得到直方图的数据,包括除了Bitmap模式外的所有格式(4位色的提取其实比较困难,不过以实现,和PS的结果完全一致)。

SetProcessingArea

设置处理区域,目前只支持矩形区域。所有支持处理函数都是在这个基础上进行的。

几个绘制图形的方法

DrawDiamond

DrawEllipseEx (绘制倾斜的椭圆)

DrawLine

DrawPie

DrawStar

3、创建、销毁、输出、保存函数

Create:

创建新的DIB对象,可以选择位数(目前虽然可选位数,但在外部调用的时候有意义的只有32位\24位\8位)以及背景色。

CreateFromFile

从文件直接创建DIB对象,会检查文件是否存在以及是否是图片文件。如果为BMP文件,则分析其是几位色。如果为非BMP格式但是是VB支持的图片文件,则自动转换为32色的处理。这个函数最常用,自我觉得支持的比较全面了,对于1位\4位\8位色图片考虑到了调色板的设置。

CreateFromStdPicture

从StdPicture对象创建DIB对象,32位。

CreateFromStdPictureEx

扩展的从StdPicture对象创建DIB对象,32位,包括一些区域参数设置。

CreateFromDC

从设备场景创建DIB对象,会自动分析设备场景的水平和垂直可见区域,对于不可见区域不予以考虑(即使考虑也是黑色的一片,似乎没有意义)。

CreateFromClipBoard

从剪贴板创建DIB对象,会分析剪贴板是否含有有效数据。

以上函数返回值表示了DIB对象是否创建成功。

CreateFromByteArray

CreateFromRGBArray

这两个函数可以接受数组而显示数字图像,我们常常在计算温度场等等的,就可以用这个函数直接显示图像

Destroy

销毁DIB对象及相关资源。

OutPut

输出到目标DC,可指定位置参数等。

OutPutEx

输出到指定句柄的对象中

StretchOutPut

缩放输出,用在放大和缩小上。

SaveImage

支持BMP、JPG格式。会自动分析颜色位数。

4、切换图像模式:

处理速度以1024*768的图像为准,机器配置256MB内存,塞扬2.4G,XP系统。

ChangeToBitmapMode

转换成BitmapMode模式,既黑和白,提供Bayer\ ErrorDiffuse \Floyd_Steinberg\ ZYL910\None(Bitblt)几种抖动方法。原始图像必须是灰度模式,大概50ms。

ChangeToGreyMode

转换成灰度模式(8位),原始图像可为32位,24位,8位\4位索引色。最慢32ms。

ChangeToIndexMode

通过指定的调色板转换成索引色,可指定是否抖动。原始图像可为32色\24色\灰度图像。时间估计:100ms

如何得到当前图像的调色板,可参考GetSpecialColorTable函数。

ChangeToRGBMode

转换为RGB模式,可选位数(24\32),用时16ms。

5、模拟PS中的调整菜单函数函数:

AutoLightness

自动亮度 200ms

AdjustBrightnessAndContrast

调整亮度和对比度,完全等同于PS 15ms

Desaturate

去色   15ms

Equalize

色调均化 32ms

Exposal

暴光效果 32ms

Invert

反色   15ms

ShiftHLS

模拟PS的色相饱和度功能。

AutoSaturation

自动饱和度。

AdjustLevels

调整色阶。

ChannelMixer

通道混合器。

ColorBalance

颜色平衡

BinSpecifiedThreshold

阀值

6、模拟PS中的画布调整和大小函数:

Rotate180

旋转180 速度15ms。

Rotate270

旋转270 速度15ms。

Rotate90

旋转90 速度15ms。

Rotate

任意角度旋转,支持背景色,支持抗锯齿。速度视旋转角度而定,但不超过250ms。

FlipHorizontal

水平翻转。

FlipVertical

垂直翻转。

MirrorX

X轴镜像。

MirrorY

Y轴镜像。

AdjustCanvas

改变位置

Resample

缩放图像大小。可选4种缩放方法,双线形插值\三次立方\系统自带的stretchblt,改进自zyl910的代码。

以上函数均支持多种颜色位深。

7、其他常用PS中的功能

Crop

裁剪,可指定是否保留源数据

FillWithColor

用指定的颜色填充选定区域,可指定透明度和混合方式。

FillWithPattern

用指定的模板填充选定区域,可指定透明度和混合方式。

以上两个函数会自动更改所提供的颜色参数以使得填充后的图像符合原来的格式(针对索引色和灰度模式才有这个过程)。

AddNoise

给图像添加噪音,噪音类型可选平均分布,高司分布和椒盐噪音,可选单色。针对真彩色和灰度,可实时显示与调节。

AverageBlur

均值模糊。

Charcoal

特效。

Mosaic

马赛克效果,速度做过优化,不超过70ms。

Stroke

描边,可选边缘位置,长度,透明度和混合模式。

OffSet

模仿PS的偏移功能等等

Scanlines

扫描线效果。

Diffuse

溶解效果。

Emboss

雕刻效果。

Erode

腐蚀效果。

Blendimage

用于两副图片合成,支持PS的图层中的所有混合模式,速度高速。

Transparentblt

透明合成,不是系统的哪个API函数,速度要优于系统,并且可指定透明色。

CoolString

生成COOL字。

GrayToTrueColor

伪彩色显示灰度图,支持6种方法。

ShadeRect

模拟图像被选中时的效果。

8、常用二值化功能

BinMaxEntropy

BinOtsu

BinP_Tile

BinSpecifiedThreshold

BinSwatanabe

BinSlice

9、常用条形码生成函数

可生成以下几种条形码

Code39 = 0

RationalCodabar = 1

CodeI2of5 = 2

Code93 = 3

Postnet = 4

EAN13 = 5

UPCA = 6

GenerateBarCode

生成条形码

10、其他常用有特色的函数

Watermark

添加字符和图片水印(非严格意义上的水印)

EmbedWaterMark

嵌入水印。针对真彩色和灰度,水印图像的格式可以和原图像不同。

PickWaterMark

提取水印。

Compareimage

快速比较两副图片是否完全相同,参数可以是Cimage类或者文件。

捕捉屏幕函数

SnapScreen

SnapActiveWindow

SnapControlFromHwnd

SnapAllScreen

以上除了第二个函数外,都可以指定延迟时间。

图像硬聚类和模糊聚类函数

Fcm

Hcm

以上两个函数请参考博客中的相关文章。

HoughDetection

哈弗变换检测直线的代码。

BitmapToRegion

位图转换为区域的,可以用来做异形窗体。

CreateCursorFromBitmap

从位图创建光标,可指定透明色。

GetTextureInfo

得到图像的纹理信息

Add

两幅图像相加

SubTract

两幅图像相减

Multiply

图像乘一个因子

四个边缘检测算子

EdgeLaplace

EdgePrewitt

EdgeRoberts

EdgeSobel

11、事件处理:

ImageModeChanged

图像的模式改变时,这样方便菜单的处理。

Progressing

对于较长的处理过程提供这个事件。

ProgressEnd

处理完成,用于刷新图像等等。

ErrorOccur

用于错误提示。

php cimage类,强大的多功能的用VB编写的高速图像处理库Cimage简介! - 小志的日志 - 电子工程世界-论坛...相关推荐

  1. CImage类 from http://www.cnblogs.com/afarmer/archive/2012/03/31/2427273.html

    CImage类 Visual C++的CBitmap类的功能是比较弱的,它只能显示出在资源中的图标.位图.光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP. ...

  2. CImage类的用法(转帖)

    From: http://elevenguy.blog.163.com/blog/static/616122092010053550593/ 我们知道,Visual C++的CBitmap类和静态图片 ...

  3. VC6如何使用VS2005中的CImage类功能

    由于VC6启动速度快,产生的执行代码小,还有可爱的类向导,所以许多C++程序员还工作在VC6环境中.       但是我们想在VC6中用VS2005中的新功能怎么办呢?例如CImage类(有很强的图像 ...

  4. 【Visual C++】游戏开发笔记十四 游戏画面绘图(四) 华丽的CImage类

    本系列文章由zhmxy555编写,转载请注明出处. http://qianmo.blog.51cto.com/5127279/875711 作者:毛星云 邮箱: happylifemxy@qq.com ...

  5. MFC中CImage类显示的半透明PNG存在的问题以及处理方法

    在MFC中自己也做过很多关于如何实现图片半透明的方法,包括抠图,图像数据计算等,但是使用MFC中CImage的时候有时候是透明的,有时候透明部分为白色!让人难以置信,最后在不经意间发现了这边文章才恍然 ...

  6. CImage类的使用介绍!

    链接参考:http://www.cnblogs.com/juncheng/articles/1600730.html CImage是MFC和ATL共享的新类,它能从外部磁盘中调入一个JPEG.GIF. ...

  7. 用CImage类来显示PNG JPG等图片

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...

  8. (已更新)谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能

    看名字就知道啦,这是一个谁是卧底的小程序源码 游戏规则: 谁是卧底是一款线下聚会的游戏,考验口才和脑力的同时,也能活跃气氛. 游戏人数为4-12人,游戏角色包括平民,卧底,白板可供用户选择! 游戏步骤 ...

  9. 谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能

    看名字就知道啦,这是一个谁是卧底的小程序源码 游戏规则: 谁是卧底是一款线下聚会的游戏,考验口才和脑力的同时,也能活跃气氛. 游戏人数为4-12人,游戏角色包括平民,卧底,白板可供用户选择! 游戏步骤 ...

  10. 【小程序源码】谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能

    看名字就知道啦,这是一个谁是卧底的小程序源码 游戏规则: 谁是卧底是一款线下聚会的游戏,考验口才和脑力的同时,也能活跃气氛. 游戏人数为4-12人,游戏角色包括平民,卧底,白板可供用户选择! 游戏步骤 ...

最新文章

  1. NETMF Versions 4.1 Release 发布
  2. onvirt安装linux系统
  3. 第三节 计算机体系结构,计算机系统结构 第三节 输入输出系统.pdf
  4. ejb生命周期_无状态EJB:池化和生命周期
  5. java calendar_Java Calendar getLeastMaximum()方法与示例
  6. python多线程教程_Python多线程编程教程【2小时学会】
  7. 抽象方法实现多态___森林里的动物在快乐的生活
  8. python3.5安装教程及环境配置_Python安装和环境配置教程
  9. oracle数据导入/导出
  10. linq分类汇总怎么写_包围结构的字怎么写才好看?掌握方法是关键,分类总结要领很实用...
  11. scapy(二):基于流量分析的SQL注入检测
  12. 基于UML软件建模的企业人事管理系统
  13. Minecraft MOD 开发记录
  14. ffmpeg学习:滤镜(实现视频缩放,裁剪,水印等) -
  15. 美国工程师发明6冲程节能发动机
  16. Python 小写数字转为大写
  17. 计算机与网络之间是红叉,雨林木风win7系统网络连接出现红叉无法上网的解决办法...
  18. 数据库表的软硬关联_Jimmy的关系型数据库设计心得 第一版
  19. 优秀的 Verilog/FPGA开源网站介绍
  20. python判断素数_小白学Python | 你还在说你入不了门吗

热门文章

  1. java txt 分段读取_Java 读取TXT文件的多种方式
  2. 最新!谷歌浏览器去除CSDN广告插件
  3. Win10上的dll依赖查看工具Dependencies
  4. win10下网易云网络异常问题解决办法
  5. 顺序表的基本操作(完整代码)
  6. c语言链表二路归并排序,链表的二路归并排序 Sort List
  7. nas文件服务器权限安全,大势至局域网共享文件监控NAS文件权限设置的方法
  8. QT实现界面多语言切换
  9. STELLA—系统动力学仿真软件 System Dynamics仿真
  10. 教孩子学编程python 代码_天津哪有教孩子学编程python