用内存位图的数据流创建cximage对象

VC6.0下用GDI+加载PNG并实现透明绘制的完整指南 在图像处理与界面开发中,PNG格式凭借其灵活的alpha通道成为图标、Logo等透明素材的主流选择。然而在VC6.0这类老旧的MFC工程里,系统原生接口并不直接支持PNG解码与透明混合,开发者常遇到加载失败、黑底、灰边等问题。GDI+作为Windows内置的绘图组件,通过Bitmap::FromFile与AlphaBlend等机制,能够高效完成PNG解码与alpha混合,兼容老系统且无需额外部署运行时。掌握GDI+的初始化、字符集转换、绘制链路以及常见坑位的排查方法,可以稳定地在对话框、自绘控件中实现透明P 阅读详情

因为项目需求,所有图像的绘制都是在内存中实现的,所以图片是存储在BYTE*的字节流中,按照位图文件的确切组织格式,需要组织最终用于转换的字节流数据。

字节流数据包括:BITMAPFILEHEADER结构体内容,BITMAPINFO数据结构、RGBQUAD(好像调色板,如果是24位色图片时则没有这个值,这个地方我还是没有搞的很清楚,反正我用24位色图片,^-^),位图数据。将生成的数据传入cximage中即可生成cximage对象,然后可以裁剪crop,保存其它类型的图片文件。

cximage使用字节流的接口为:    CxImage orgimage(buf, size, CXIMAGE_FORMAT_BMP);   // 定义一个CxImage对象 。

 

为了验证这个接口是否可用,我使用了下面小程序,从本地文件image.bmp中直接读取全部数据流,存储到buf中,然后构造cximage对象,能进行保存为png格式图片,那就证明了这个接口是非常好用的了。

代码如下:

    CFile f;
    f.Open(L"image.bmp", CFile::modeRead);
    f.SeekToBegin();
    f.SeekToEnd();
    int size = f.GetPosition();
    f.SeekToBegin();
    BYTE *buf = new BYTE[size];
    f.Read(buf, size);
    f.Close();

    CString strname;
    RECT r;
    int w = 200;
    int h = 250;

    r.left = 10;
    r.top = 10;

    CxImage orgimage(buf, size, CXIMAGE_FORMAT_BMP);   // 定义一个CxImage对象   

    ...

 

 

 

二维码生成工具_生成灰度型png_再通过cximage生成其他格式图片 立即下载

相关推荐

C++结合大漠插件实现DNF自动化脚本:从原理到实战

自动化技术通过模拟用户操作,实现重复性任务的自动执行,其核心原理在于对系统输入输出接口的精确控制。在Windows平台,这通常涉及窗口管理、图像识别与键鼠模拟等技术。这些技术为软件自动化测试、办公流程自动化及特定场景的辅助工具开发提供了工程实践基础。大漠插件作为国内广泛使用的Windows自动化开发组件,封装了上述底层操作,显著降低了开发门槛。通过其提供的COM接口,开发者可以高效实现窗口绑定、后台找图找色及内存读写等关键功能。本文以《地下城与勇士》为例,详细解析如何利用C++集成大漠插件,构建一个稳定、高

weixin_34185512的博客 567

根据位图数据直接绘图

在处理网格应用传输图像时,接收方收到的将是数据流,如何能够将图像数据显示在窗口中呢?Windows系统提供了StretchDIBits函数,通过它能够根据位图的数据流将图像显示在窗口中。 函数原型: int StretchDIBits(HDC hdc, int XDest , int YDest , int nDestWidth, int nDestHeight, int XSrc, int 

大道至简,知易行难 2093

Unity工业数据可视化:基于ModbusTCP的实时数据通信实战

本文详细介绍了在Unity中实现工业数据可视化的核心方法,重点讲解了基于ModbusTCP协议与PLC等工业设备进行实时数据通信的实战流程。内容涵盖NModbus库的集成、Modbus Slave模拟器的使用、TCP连接的建立与多线程安全通信、数据读写与解析,以及如何将实时数据驱动3D场景,为构建工业数字孪生与监控系统提供完整解决方案。

ol7890123的博客 553

一篇博客搞定海量数据处理之位图算法(附测试代码+核心思想讲解)

位图(Bitmap)是一种数据结构,用于表示一组元素的集合,其中每个元素占据一个位或一个比特位。在位图中,每个位的值表示相应元素的存在与否或某种状态。位图通常用于解决某些需要高效地判断元素是否存在的问题,尤其是在元素的取值范围较小且空间利用效率要求较高的情况下。它的优势在于可以用较小的空间消耗来表示大量的元素,并能够在常数时间内进行元素的插入、删除和查询操作。在位图中,通常使用一个数组来表示位的序列,每个元素(通常是一个字节)中的每一位都对应一个元素。

广西彭于晏的博客 1247

WRF模式学习入门基础(建议收藏!!!)

本文详细介绍了WRF-ARW(Advanced Research WRF)模式的结构组成,重点讲解了前处理系统(WPS)和主模式中的各个关键程序的功能与流程。通过对geogrid、ungrib、metgrid、real和wrf等模块的逐步解析,帮助初学者全面理解数值天气预报模型在初始化和运行过程中所需的关键步骤。

2503_90234341的博客 3074

速腾聚创激光雷达复现FAST-LIO

记录复现FAST-LIO算法的过程和,代码梳理和理解。FAST-LIO的简化版、注释版。速腾激光雷达

abanchao的博客 2928

【位图(Bitmap)】数据结构:高效存储与处理大量数据

位图是一种数据结构,是用每一位来存放某种状态,适用于海量数据,整数,数据无重复的场景。通常是用来判断某个数据存不存在的。数据是否在给定的整形数据中,结果是在或者不在,刚好是两种状态,那么可以使用一个二进制比特位来代表数据是否存在的信息,如果二进制比特位为1,代表存在,为0代表不存在。

StuLearn-LJC的博客 3016

天地图API避坑指南:从零开始实现地址搜索与坐标标记

本文是一份天地图API实战避坑指南,详细讲解了从申请密钥、初始化地图到实现地址搜索与坐标标记的全过程。针对开发中常见的坐标偏移、搜索建议不显示、事件监听失效等核心难题,提供了具体的解决方案和代码示例,帮助开发者高效、稳定地集成天地图服务。

weixin_29326909的博客 263

opencv 图像类型(Mat、图像字节流、Bitmap、BITMAPINFO、CxImage、AVFrame)之间的转换

一、Mat与Iplimage Mat<-----> Iplimage :直接赋值 IplImage *iplImg = cvLoadImage("greatwave.jpg", 1); Mat mtx(iplImg); // IplImage* ->Mat 共享数据 // or : Mat mtx = iplImg; cvReleaseImage(&iplImg); ...

深之JohnChen的专栏 9057

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 190

Simulink开发项1000例实战专栏--实例148:构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块

电动汽车的动力电池是其核心部件,而电池的健康状态(State of Health, SOH)直接影响车辆的续航能力和使用寿命。SOH通常定义为当前电池容量与初始容量的比值,用百分比表示。通过基于MATLAB/Simulink平台的SOH评估仿真,可以实时监测电池的退化情况,并为电池管理系统(BMS)提供决策依据。本项目旨在构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块,并通过仿真验证SOH评估的准确性。

xiaoheshang_123的博客 341

CxImage使用介绍

  配置环境 1、拷贝CxImage到项目目录 编译CxImage cximage600_full\CxImage:所有的头文件和源文件 查找所有的lib 2、添加头文件目录 CxImage\Include 3、添加库文件目录 CxImage\lib 4、添加链接 cximage.lib demod.lib j2k.lib jasper.lib jbig.lib jpeg...

齐楚的专栏 1325

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CxImage图像库实战指南:从环境搭建到核心API与性能优化

图像编解码是计算机图形学与多媒体处理的基础技术,其核心原理在于将像素数据转换为特定格式的二进制流,以实现高效存储与传输。在C++工程实践中,选择合适的图像处理库直接影响项目的依赖管理、部署复杂度与性能表现。CxImage作为一个专注于图像编解码的轻量级库,其核心价值在于对超过40种图像格式的广泛支持,包括JPEG、PNG、TIFF等常见格式以及PCX、TGA等专业或遗留格式,且不依赖第三方库,实现了高度自包含。这使得它在处理历史数据、兼容特定行业格式或对依赖极度敏感的场景中具有独特优势。本文以CxImage

weixin_30911451的博客 487

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MFC 读取图像双缓冲

借鉴自http://blog.youkuaiyun.com/hong__fang/article/details/44200811                  双缓冲的实质就是在显示下一幅图像时,阻止程序自动调用OnEraseBkgnd来绘制背景(先把原图像区域显示为背景(默认白色),再显示下一幅图,因此会出现闪屏的现象)。所采取的方法就是对OnEraseBkgnd进行重载,并且在内存绘好图之

zyf19930610的专栏 959

1)从本地磁盘读取图片 2)将输入流转换为字节数组 3)使用字节数组创建Image对象

1)从本地磁盘读取图片     FileConnection fc = (FileConnection) Connector.open("file:///map/zhuangshi07.png");//path是图片路径                 InputStream is = fc.openInputStream();                 byte bufferImag

jalen_yuchi的专栏 1407

什么是数据流图 Data Flow Diagram (DFD)

一张图片胜过千言万语。数据流图(DFD)是系统内信息流的传统视觉表示。一个整齐而清晰的DFD可以用图形描绘出大量的系统需求。它可以是手动的,自动的或两者的组合。 它显示了信息如何进入和离开系统,什么改变了信息以及信息的存储位置。DFD的目的是显示整个系统的范围和界限。它可能被用作系统分析员和任何参与系统的人之间的交流工具,作为重新设计系统的起点。

Warren Lynch 的博客 3万+

opencv CxImage 互转 (Mat)

//to Mat CxImage img; img.Load("C:\\f.jpg"); uint8_t* buf=NULL; int32_t len=0; bool rs =img.Encode(buf,len,CXIMAGE_FORMAT_BMP); cv::Mat temp2; vector&lt;uchar&gt; buff2; buf...

weixin_34122604的博客 306

使用流对象保存和显示图片

打开vb6,新建工程。 添加两个按钮,一个image控件 注意:Access中的photo字段类型为OLE对象. SqlServer中的photo字段类型为Image . '** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本 ‘2.5版本以下不支持Stream对象 Dim iConcstr As String Dim iCo...

weixin_34336526的博客 174

STemWin 从外部存储器获取并绘制流位图 Streamed Bitmap [3]

前言 本博文基于emWin V5.50和MDK环境下编写和调试; 本博客内容介绍STM32利用STemWIn库从搭载了文件系统(FATFS V13c)的SD卡上获取到一个位图流,并显示在LCD的指定位置上的小实验;看本博文需要有一些GUI的基础和位图基础; 如有不足,还请多多指教; 获取流程 对于一个大的GUI项目来说,如果所有的图标数据都保存在单片机内部ROM中,所占用的内存空间是非常大的,...

small_is_powerful , small_is_beautiful 1770

图片和二进制流转换为Image对象

将图片转换为image对象: Image  img = Image.FromFile(@“e:/Images/moren.jpg");   将varbinary二进制流转换为图片对象: MemoryStream ms = null; Image img = null; ms = new MemoryStream((Byte[])dt.Rows[i]["Pic_2D"]); //Mem

lingling_jy的专栏 3013

位图(bmp)文件格式分析

from:https://blog.youkuaiyun.com/qingchuwudi/article/details/25785307 位图(bmp)文件格式分析 作者:深蓝(由博主分享) 一、什么是位图 计算机能以位图和矢量图格式显示图像。 1、位图(Bitmap): 图像又称点阵图或光栅图,它使用我们称为像素(象素,Pixel)的一格一格的小点来描述图像。计算机屏幕其实就是一张包含大量像素...

Wanda && Aidem 6万+
上一篇: cximage库切割crop图片
下一篇: 用gdi+将内存位图文件保存为其它格式的图片
secondfloor
博客等级 码龄18年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值