CxImage图像处理类库说明3(转载)
在ximage.h头文件的CXIMAGE_SUPPORT_DSP部分,你可以在public区域的任何部分声明这个函数。
现在,我们开始定义这个函数:
{
// 检查图像是否合法,这应当是这个函数的第一行
if (!pDib) return false;
// 局部变量
long nx,ny;
// 临时图像,用于存储算法的部分结果
CxImage tmp(*this,pSelection!=0,true,true);
// 限制函数仅仅作用在选区(通过Selection...()函数定义)的最小区域
// 这将加快整个循环的速度,提高算法效率
long xmin,xmax,ymin,ymax;
if (pSelection){
xmin = info.rSelectionBox.left; xmax = info.rSelectionBox.right;
ymin = info.rSelectionBox.bottom; ymax = info.rSelectionBox.top;
} else {
xmin = ymin = 0;
xmax = head.biWidth; ymax=head.biHeight;
}
// 主循环 : 垂直方向扫描图像
for(long y=ymin; y <ymax; y++){
// 监视循环的进度
info.nProgress = (long)(100*y/head.biHeight);
// 检查应用程序是否已经退出
if (info.nEscape) break;
// 主循环 : 水平方向扫描图像
for(long x=xmin; x<xmax; x++){
// 如果选区功能启用了,则仅仅处理选区内部的像素
#if CXIMAGE_SUPPORT_SELECTION
if (SelectionIsInside(x,y))
#endif //CXIMAGE_SUPPORT_SELECTION
{
// 主算法
nx=x+(long)((rand()/(float)RAND_MAX - 0.5)*(radius*2));
ny=y+(long)((rand()/(float)RAND_MAX - 0.5)*(radius*2));
if (!IsInside(nx,ny)) {
nx=x;
ny=y;
}
// 保存结果到临时图像中.
// 如果可以,24位图像请使用PixelColor,
// 而8,4和1位图像请使用PixelIndex,这样可以加快速度。
if (head.biClrUsed==0){
tmp.SetPixelColor(x,y,GetPixelColor(nx,ny));
} else {
tmp.SetPixelIndex(x,y,GetPixelIndex(nx,ny));
}
// 如果启用了透明度功能,则处理透明图层中的像素
#if CXIMAGE_SUPPORT_ALPHA
tmp.AlphaSet(x,y,AlphaGet(nx,ny));
#endif //CXIMAGE_SUPPORT_ALPHA
}
}
}
// 保存结果并退出
Transfer(tmp);
return true;
}
示例: 如何转换一种格式到另外一种格式
// bmp -> jpg
image.Load("image.bmp", CXIMAGE_FORMAT_BMP);
if (image.IsValid()){
if(!image.IsGrayScale()) image.IncreaseBpp(24);
image.SetJpegQuality(80);
image.Save("image.jpg",CXIMAGE_FORMAT_JPG);
}
// png -> tif
image.Load("image.png", CXIMAGE_FORMAT_PNG);
if (image.IsValid()){
image.Save("image.tif",CXIMAGE_FORMAT_TIF);
}
如何从资源中加载图像
CxImage* newImage = new CxImage();
newImage->LoadResource(FindResource(NULL,MAKEINTRESOURCE(IDR_PNG1),
"PNG"),CXIMAGE_FORMAT_PNG);
或者
//Load the resource IDR_JPG1 from DLL
CxImage* newImage = new CxImage();
HINSTANCE hdll=LoadLibrary("imagelib.dll");
if (hdll){
HRSRC hres=FindResource(hdll,MAKEINTRESOURCE(IDR_JPG1),"JPG");
newImage->LoadResource(hres,CXIMAGE_FORMAT_JPG,hdll);
FreeLibrary(hdll);
}
或者
//Load a bitmap resource;
HBITMAP bitmap = ::LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP1)));
CxImage *newImage = new CxImage();
newImage->CreateFromHBITMAP(bitmap);
转载于:https://www.cnblogs.com/carekee/articles/2174673.html
CxImage图像处理类库说明3(转载)相关推荐
- CxImage图像处理类库
转自:http://blog.csdn.net/byxdaz/archive/2009/04/10/4061324.aspx CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保 ...
- Visual C++ 图像处理类库CxImage源代码
说明:VC++ 图像处理类库CxImage源代码,CxImage是一个可以用于MFC 的C++类,可以打开,保存,显示,转换 各种格式的图像文件,比如BMP, JPEG, GIF, PNG, TIFF ...
- Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx
Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx 1. 安装的原理,主要是解压,复制,设置三大步1 2. 目前我们常见的三大种安装模式,二进制模式与源码安装模 ...
- java 识别图片 边框_atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本...
atitit.验证码识别step3----去除边框----图像处理类库 attilax总结java版本 1. 去除边框思路原理 图像裁剪::从图片的Positions.CENTER,wid,hit)裁 ...
- cd库图像处理php,PHP图像处理类库及演示分享
简单写了一个PHP的图像处理类库,虽然功能比较少,但是目前也没用到太高级的,以后用到了再填吧,或者哪位给点建议加上什么功能,或者有什么需求可以跟我说,我有时间加上,如果哪位对这个类库进行了扩展的话,还 ...
- HTML5/JavaScript 图像边缘羽化— 打造图像处理类库第二步
由于之前略忙,主要也还是因为自己太懒,拖了好久才把这篇博客写完.这篇博客是关于图像边缘羽化(柔化)的,也是 JavaScript 图像处理这一系列的第二篇.上一篇是关于Gamma校正的,有兴趣的朋友可 ...
- matlab 图像处理 新浪 应变,[转载]Matlab图像处理小结
经常做做图像处理的东西,时间长了,有些函数就忘了,看到网上有人总结,收藏了. 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大 ...
- dNet图像处理组件学习总结
关于.NET下开源及商业图像处理(PSD)组件 http://www.cnblogs.com/Leo_wl/archive/2013/03/21/2973299.html [原创].NET开源压缩组件 ...
- CC++图形图像处理开源库
Google三维APIO3D O3D 是一个开源的 WebAPI 用来在浏览器上创建界面丰富的交互式的 3D 应用程序.这是一种基于网页的可控3D标准.此格式期望真正的基于浏览器,独立于操作系统之外, ...
最新文章
- 【转载】xmind的使用安装方法
- CentOS 修改/etc/resolv.conf 重启network后又恢复到原来的状态
- PHP-SESSION深入理解
- python使用json实现树结构_js怎样将获取json转换为树形结构
- 导数卷积 (NTT)
- ffmpeg - AVPacket内存问题分析(AVFrame一样的)
- 用Java实现一个简单的链表迭代器
- 新疆特岗计算机考试题,2020新疆特岗教师笔试资料领取(小学信息技术)
- SQL注入-布尔盲注
- 还敢吹「毫无PS痕迹」?小心被Adobe官方AI打脸
- oracle unused 语法_【转】Oracle set unused的用法
- 视频中场的概念(1080I和1080P)和BT601/656/709/1120/2020/2077
- WordPress中导入图片模糊
- Unity跳一跳小游戏简单代码
- 【Mac实用技巧】Mac如何修复YouTube视频黑屏现象?
- 联想服务器pe进系统还原,传授联想如何一键还原系统
- java审计之XXE
- 网络安全与渗透:内网渗透,Cobalt_Strike(十三)此生无悔入华夏,男儿何不带吴钩
- cmake时添加-fPIC编译选项
- 能一次进临界区的时候,不要多次进入