// ID_CXIMAGE_MIRROR

文件:CxImage\demo\demoDoc.cpp

菜单项:cximage-》Mirror

ON_COMMAND(ID_CXIMAGE_MIRROR, OnCximageMirror)

  

void CDemoDoc::OnCximageMirror()
{
m_MenuCommand=ID_CXIMAGE_MIRROR;
hThread=(HANDLE)_beginthread(RunCxImageThread,0,this);
}

  

//_beginthread,VC/VC++函数,创建一个线程。
//链接: https://baike.baidu.com/item/beginthread/4230822?fr=aladdin

  

void /*unsigned long _stdcall*/ RunCxImageThread(void *lpParam)
{
CDemoDoc *pDoc = (CDemoDoc *)lpParam;
switch (pDoc->m_MenuCommand)
{
status = pDoc->image->Mirror(); // doc->image = newImage;当前的图像 }
}

  

// CxImage\CxImage\ximatran.cpp
bool CxImage::Mirror(bool bMirrorSelection, bool bMirrorAlpha)
{
if (!pDib) return false;// void* pDib; //包含文件头,调色板等等 }
bool CxImage::LoadResource(HRSRC hRes, DWORD imagetype, HMODULE hModule)
{
DWORD rsize=SizeofResource(hModule,hRes);
HGLOBAL hMem=::LoadResource(hModule,hRes);
// LockResource是指锁定资源并得到资源在内存中的第一个字节的指针。
char* lpVoid=(char*)LockResource(hMem);
CxMemFile fTmp((BYTE*)lpVoid,rsize);
return Decode(&fTmp,imagetype);
{
if (imagetype==CXIMAGE_FORMAT_JPG){
CxImageJPG newima;
{
// 构造函数
CxImageJPG::CxImageJPG(): CxImage(CXIMAGE_FORMAT_JPG)
{
#if CXIMAGEJPG_SUPPORT_EXIF
m_exif = NULL;
memset(&m_exifinfo, 0, sizeof(EXIFINFO));
#endif
}
}
newima.CopyInfo(*this); // <ignacio>
{
if (pDib==NULL) memcpy(&info,&src.info,sizeof(CXIMAGEINFO));
/*
typedef struct tagCxImageInfo {
DWORD dwEffWidth; //双字节对齐宽度
BYTE* pImage; //图像数据
void* pGhost; //如果这是一个备份(ghost),
//则pGhost指向它的原始对象
DWORD dwType; //原始图像格式
char szLastError[256]; //调试信息,最后的错误信息
long nProgress; //进度
long nEscape; //取消
long nBkgndIndex; //GIF, PNG, MNG使用
RGBQUAD nBkgndColor; //RGB透明使用
BYTE nQuality; //JPEG使用
long nFrame; //TIF, GIF, MNG使用,表示当前活动帧
long nNumFrames; //TIF, GIF, MNG使用,表示总帧数
DWORD dwFrameDelay; //GIF, MNG使用,表示帧的延迟
long xDPI; //水平分辨率
long yDPI; //垂直分辨率
RECT rSelectionBox; //对象的外包围框
BYTE nAlphaMax; //最大透明度
bool bAlphaPaletteEnabled; //如果调色板中的alpha值是启用的,
//则这个变量为true
bool bEnabled; //启用绘制函数
long xOffset;
long yOffset;
DWORD dwEncodeOption; //GIF, TIF使用:
// 0=def.1=unc,2=fax3,3=fax4,
// 4=pack,5=jpg
RGBQUAD last_c; //用于优化GetNearestIndex
BYTE last_c_index;
bool last_c_isvalid;
long nNumLayers;
DWORD dwFlags;
} CXIMAGEINFO;
*/
}
if (newima.Decode(hFile)){// CxImage\CxImage\ximajpg.cpp
Transfer(newima);// newima 作为临时变量传递this
return true;
} else {
strcpy(info.szLastError,newima.GetLastError());
return false;
}
}
}
}
newima.Decode(hFile)
{
is_exif = DecodeExif(hFile);//= CxMemFile fTmp
{
m_exif = new CxExifInfo(&m_exifinfo); // 此时,什么都没有 CxImage\CxImage\ximaexif.cpp }
// 获取文件头
Create(cinfo.output_width, cinfo.output_height, 8*cinfo.output_components, CXIMAGE_FORMAT_JPG); }

  

cximage菜单(Mirror)的更多相关文章

  1. ProBuilder快速原型开发技术 ---不规则模型与材质

    ProBuilder开发模型的强大之处,还在于可以按照要求精确定制不规则模型.克隆镜像模型.给模型着色以及添加材质等,下面笔者就这几方面进行讲解. 一:定制不规则模型 PB有一个专门定制不规则模型的功 ...

  2. CxImage图像库的使用 .

    http://blog.csdn.net/wangjie0377/article/details/7830405 CxImage图像库 CxImage下载地址:http://www.codeproje ...

  3. 【转】CxImage图像库的使用

    CxImage下载地址:http://www.codeproject.com/KB/graphics/cximage/cximage600_full.zip 作者:Davide Pizzolato C ...

  4. kali linux 更新软件源,安装中文输入法,修复Linux与windows引导菜单解决windows引导丢失

    1. 更新软件源打开sources.list文件,进行添加更新源:leafpad /etc/apt/sources.list 2. 添加软件源#官方源 deb http://http.kali.org ...

  5. CxImage的使用及基本用法

    基本定义:CxImage类库是一个优秀的图像操作类库.它可以快捷地存取.显示.转换各种图像. 下载地址:http://www.codeproject.com/KB/graphics/cximage.a ...

  6. VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx

    尽管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用 ...

  7. maven的setting配置文件中mirror和repository的区别

    当maven需要到的依赖jar包不在本地仓库时, 就需要到远程仓库下载 . 这个时候如果mavensetting.xml中配置了镜像 , 而且镜像配置的规则中匹配到目标仓库时 , maven认为目标仓 ...

  8. Linux操作系统之更改启动菜单的背景图实战案例

    Linux操作系统之更改启动菜单的背景图实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.制作图像并上传到服务器 1>.使用window 10操作系统自带的画图工具 ...

  9. 【视频开发】 十全大补:CxImage图像处理类库

     十全大补:CxImage图像处理类库 转载IT168        CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JP ...

  10. ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单

    前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...

随机推荐

  1. Velero系列文章(四):使用Velero进行生产迁移实战

    概述 目的 通过 velero 工具, 实现以下整体目标: 特定 namespace 在B A两个集群间做迁移; 具体目标为: 在B A集群上创建 velero (包括 restic ) 备份 B集群 ...

  2. python Modbus 进行通讯时抛出Modbus Error: Exception code = 2

    源码: import modbus_tk from modbus_tk import modbus_tcp import modbus_tk.defines as cst PORT = 'com1' ...

  3. 模仿 vscode-server 把本地代码目录映射到外网

    目录 概述 分析 解决方案 准备一台VM 创建容器 SmartIDE 创建 直接使用 docker 创建 SSH 远程转发 内网穿透 ngrok frp 服务端 客户端 本文模仿 vscode-ser ...

  4. CH432,CH438,CH9434串口扩展芯片常见问题

    目前WCH有三款串口扩展芯片CH432,CH438以及CH9434. 型号 CH432 CH438 CH9434 扩展串口数量 2 8 4 通讯接口 并口/SPI(具体需要看芯片封装) 并口 SPI ...

  5. 基于jQuery的三种AJAX请求

    基于jQuery的三种AJAX请求 1. 介绍 get请求 通常用于 获取服务端资源(向服务器要资源) ​ 例如:根据URL地址,从服务器获取HTML文件.CSS文件.JS文件.图片文件.数据资源等. ...

  6. sqli-laba靶场搭建

    windows下安装sqli-laba 环境:windows10 安装phpstudy 1.下载并安装小皮面板phpstudy(傻瓜式安装) https://www.xp.cn/windows-pan ...

  7. [seaborn] seaborn学习笔记5-小提琴图VIOLINPLOT

    文章目录 5 小提琴图Violinplot 1. 基础小提琴图绘制 Basic violinplot 2. 小提琴图样式自定义 Custom seaborn violinplot 3. 小提琴图颜色自 ...

  8. [常用工具] 深度学习Caffe处理工具

    目录 1 Caffe数据集txt文本制作 2 jpg图像完整性检测 3 图像随机移动复制 4 图像尺寸统计 5 图像名字后缀重命名 6 两文件夹文件比对 7 绘制caffe模型的ROC曲线(二分类) ...

  9. SQLSERVER 的主键索引真的是物理有序吗?

    一:背景 1. 讲故事 最近在看 SQL SERVER 2008 查询性能优化,书中说当一个表创建了聚集索引,那么表中的行会按照主键索引的顺序物理排列,这里有一个关键词叫:物理排列,如果不了解底层原理 ...

  10. ASCLL编码器-算术运算符_四则与取模运算

    ASCLL编码器 public static void main(String[] args) { //字符类型变量 char c = 'a'; int i = 1; //字符类型和int类型计算 S ...