在VC上实现如何从内存中读取JPEG、GIF等图像

VisualC++6.0下JPEG图像的显示 论述了JPEG压缩和解压缩的过程,并给出了操作实例 立即下载
本文来自http://blog.youkuaiyun.com/hellogv/

首先,本文适合那些由网络传输得到的JPEG、GIF图像显示,因为这些图像都是以“BYTE数组”这种形式传输。
    直接给出函数,不说废话了!
//-----------以下两句放在头文件定义的地方

#include "Gdiplus.h"

using namespace Gdiplus; 

//-----------以下代码修改一下变量为自己的变量,即刻使用

    void Readfrombuffer(char* video_data,int size)

{

                GdiplusStartupInput m_gdiPlusInPut;

                ULONG_PTR m_gdiPlusToken;

                GdiplusStartup( &m_gdiPlusToken, &m_gdiPlusInPut, NULL ); //初始化GDI+ 

		IPicture *pPic;

		IStream *pStm ; 

		//分配全局存储空间 

		HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,size);

		LPVOID pvData=NULL ;

		//锁定分配内存块 

		pvData=GlobalLock(hGlobal);

		//复制数据包video_data到pvData

		memcpy(pvData,video_data,size);

		GlobalUnlock(hGlobal);

		CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);

		ULARGE_INTEGER        pSeek;       

		LARGE_INTEGER    dlibMove  ={  0  }  ;  

		pStm->Seek(dlibMove,STREAM_SEEK_SET  ,&pSeek);  

                Sleep(15);



		//装入图形文件

		if(FAILED(OleLoadPicture(pStm,size,TRUE,IID_IPicture,(LPVOID*)&pPic)))

		{//附:如果video_data这个数组包含的图像有错,则OleLoadPicture 容易产生读写内存错误

			pPic->Release();

			pStm->Release();

			return ;

		}



		Image img(pStm,0);

		Graphics mGraphics(GetDC(hwnd));

		mGraphics.DrawImage(&img, 0, 0, Video_Width, Video_Height);

		img.~Image();//会出错

		mGraphics.~Graphics();

		pPic->Release();

		pStm->Release();

               GdiplusShutdown(m_gdiPlusToken); //销毁GDI+

}
 
VC++读入显示JPEG图片 VC++6.0实现读入和显示JPEG图片的功能,挺简单易懂的 立即下载

相关推荐

VC/VC++ 动态加载Gif动画

动态加载GIF动画 VC 实现 include "stdafx.h" #include "TransparentGif.h" #include "TransparentGifDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CTransparentGifApp BEGIN_MESSAGE_MAP(CTransparentGifApp, CWinAppEx) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CTransparentGifApp 构造 CTransparentGifApp::CTransparentGifApp() { // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CTransparentGifApp 对象 CTransparentGifApp theApp; // CTransparentGifApp 初始化 BOOL CTransparentGifApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CTransparentGifDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }

VC6.0 平台 JPEG 图片读写实验

实验 VC6.0 平台 JPEG 图片读写 实验目的 (1)编译 JPEG-8C 参考软件。 (2)学会使用 JPEG-8C 提供的可执行文件进行简单的 JPEG 解压缩。 (3)在 Microsoft Visual C++ 6.0 环境下进行读写 JPEG 格式文件实验,了解并熟悉基本 的 JPEG 文件解压缩和压缩处理方式。 实验环境 (1)Windows XP OS (2)IJG 参考软件 JPEG-8C (3)Microsoft Visual C++ 6.0 实验程序 (1)JPEG 图像的解压

escFAJ的博客 369

VC6.0读取植物大战僵尸内存数据

使用VC6.0控制台编写的读写植物大僵尸内存源码,初学者可以参考。植物大战僵尸使用的是1.2.0.1073版本。学习版本,循环没有详细写,方便初学者学习。

Linux摄像头(v4l2应用)——在LCD上实时显示摄像头采集JPEG数据

前面使用了v4l2从摄像头获取到一帧图像,格式为JPEG,JPEG是经过压缩后的图像,如果要在LCD上显示,则需要将其解压缩得到RGB数据用于在LCD上显示,解压缩的过程就可以调用libjpeg开源库中的函数来完成解压,得到图像的RGB数据。下载源码移植后就可以使用了,在解码中需要用到最重要的结构体如下,struct jpeg_decompress_struct可以在libjpeg源码中jpeg.h中找到该结构体,其成员特别多,包含了jpeg图像的详细信息,同时也包含了解码后的数据信息。

qq_41007891的博客 2980

Unity物理驱动3D汽车实现:从刚体控制到参数调优

在游戏开发中,刚体物理是实现真实物体运动与交互的核心技术。通过Unity的物理引擎,开发者可以模拟重力、碰撞、摩擦力等物理行为,为游戏世界注入真实感。其技术价值在于能够以符合物理规律的方式驱动游戏对象,避免穿墙、无视惯性等问题,从而提升游戏体验的真实性和沉浸感。这一原理广泛应用于角色控制、车辆模拟、物体破坏等场景。本文以3D小汽车为例,详细解析了如何通过Rigidbody组件施加力与扭矩,并利用C#脚本实现玩家输入逻辑,完成一辆可操控、能碰撞的物理驱动汽车。文中重点探讨了AddForce与角速度控制两种方案

weixin_34380948的博客 500

AI市场风起云涌,ai浏览器是最佳的落地项目,现在ai市场的ai浏览器竞争加剧,得ai浏览器者得天下!

从场景覆盖度来看,AI 浏览器已突破 “网页浏览” 的传统边界,成为连接个人生活、工作、消费的 “超级入口”,这是其他 AI 应用难以比拟的落地优势。在个人生活场景,AI 浏览器可基于用户行为数据主动提供服务 —— 当用户浏览马拉松赛事信息时,浏览器能自动生成 “训练计划 + 装备推荐 + 能量补给方案”,并关联预订链接;在工作场景,Opera Neon 浏览器已实现 “网页内容提取 - 代码生成 - 报告撰写” 的全流程辅助,开发者可直接在浏览器内完成网站开发初稿;

zhang9880000的博客 1086

vc6配置mfc项目读取图片实验报告(详细)

1.首先下载DLL&DIP文件(内容为图1)。 2.将ImageLoad.dll拷贝到应用程序所在的目录、 Windows目录、 Windows\System目录或Windows\System32目录。 3.创建新的MFC【exe】工程,并命名为Dip。(图2) 在第六步将基类改为CScrollView(图3) 4.将图 1中文件复制到工程目录下。 5.选择VC++集成开发环境的Pr...

qq_44819541的博客 1054

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 516

VC下加载JPG/GIF/PNG图片的两种方法

仅管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。 1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个I...

晚晴小筑 321

MT4量化交易入门:手把手教你用MQL4编写第一个外汇EA(含完整代码)

本文详细介绍了如何使用MQL4在MT4平台上编写第一个外汇EA,涵盖从开发环境配置到均线交叉策略实现的完整流程。通过手把手教学和完整代码示例,帮助量化交易新手快速掌握外汇自动化交易的核心技术,实现高效的MT4量化交易系统。

mmm90的博客 525

MS1861宏晶微视频显示与控制器芯片:开发资料全解析与应用指南

本文全面解析了宏晶微MS1861视频显示与控制器芯片的核心功能与开发流程。该芯片作为高性能的“视频信号翻译官”,支持HDMI、LVDS等多种输入与MIPI、LVDS等输出,集成强大的图像处理与OSD叠加功能。文章详细介绍了从资料获取、环境搭建到以HDMI转MIPI为例的实战配置与调试技巧,为工业HMI、广告机等应用的开发者提供了完整的应用指南。

weixin_29198045的博客 337

在VC上实现如何从内存中读取JPEG GIF等图像

在VC上实现如何从内存中读取JPEG GIF等图像

qq_43666994的博客 351

K型热电偶负电压采集难题?3种运放电路设计方案对比(含Multisim仿真)

本文针对K型热电偶在低温测量中产生的负电压采集难题,详细对比了三种运放电路设计方案,包括双电源运放反相放大、单电源仪表放大器和差分放大电路,并结合Multisim仿真数据分析了各方案的性能差异。文章还提供了PCB布局和抗干扰设计的实战技巧,帮助工程师解决热电偶信号采集中的核心挑战。

postgres8guard的博客 1017

VC 如何显示JPEG、GIF格式图像

一、 引言 JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛的认可。GIF格式虽然仅支持256色但它对于颜色较少的图像有着很高的压缩率,甚至超过JPEG标准,也得到了广泛的认同。但作为众多程序员的一个重要的开发工具–Microsoft Visual C++ 6.0的MFC库却仅对没有经过任何压缩的BMP位图文件

lla520的博客 482

企业信息化系统的组成模块-核心业务系统

通过标准化的数据流形成完整的业务闭环,CRM生成的销售订单驱动ERP的生产和采购,ERP将生产计划传递给MES执行,MES报工数据返回ERP进行成本核算,ERP再将交付信息同步给CRM供客户查询。生产管理确保高效交付,缩短订单周期。某贸易公司实施ERP供应链模块后,库存周转率从每年4次提升到8次,库存资金占用从2000万降到1200万,释放800万现金流,同时缺货率从15%降到5%。│ │库存 │ │ MRP │ │ ERP │ │ 云ERP/ │ │。

weiyvyy的博客 694

AutoSAR MemMap模块详解及使用注意事项

在本文中,我们将深入探讨MemMap模块的实例解析,并介绍在使用该模块时需要注意的一些事项。在上述代码中,我们使用了MEMMAP_START_SEC_VAR_32BIT和MEMMAP_START_SEC_CODE来定义MemMap区域的起始位置,使用MEMMAP_STOP_SEC_VAR_32BIT和MEMMAP_STOP_SEC_CODE来定义MemMap区域的结束位置。1.合理划分MemMap区域:根据实际需求,合理划分MemMap区域,将不同类型的变量放置在不同的区域中,以便于管理和访问。

weixin_50547796的博客 2530

在VC下显示JPEG、GIF格式图像的一种简便方法

一、 引言   JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛的认可。GIF格式虽然仅支持256色但它对于颜色较少的图像有着很高的压缩率,甚至超过JPEG标准,也得到了广泛的认同。但作为众多程序员的一个重要的开发工具--Microsoft Visual C++ 6.0的MFC库却仅对没有经过任何压缩的BMP位图

Y___Y的专栏 1423

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC下显示JPEG、GIF图像的简便方法

VC下显示JPEG、GIF图像的简便方法   作者:佚名    文章来源:天极    点击数: 2596    更新时间:2006-1-6

一粒沙的专栏 895

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: SPCE061A使用时基,实现从8Hz到1024Hz的定时器
下一篇: 使用J2ME搜索蓝牙设备,并与搜到的设备通信
欧巴Godwin
欧巴Godwin 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 9690粉丝 141原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值