Windows Xp下BMP位图转JPEG格式
一、基于C#的Bitmap类
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
namespace ConsoleBmpToJpeg
{
class Program
{
static void Main(string[] args)
{
string bmpFilePath = "testBmp.bmp";
Bitmap m_bitmap = new Bitmap(bmpFilePath);//读取指定目录下的位图文件并构造位图对象
string jpgFilePath = "jpegResult.jpg";
m_bitmap.Save(jpgFilePath, ImageFormat.Jpeg);//保存图片文件
//说明:
//1.保存图片格式还有很多其它选择,比如gif,png等等
//2.可以将转换的结果保存为文件流,也可以保存为内存流
}
}
}
说明:此方法只能基于WinXp下可以用,在WinCe下,构造位图那一语句是无法正常运行的,不知道为什么,可能是WinCe下没有提供这么高级的函数吧。最后还是用C++通过IImageFactory接口来进行的格式转换的。
二、基于C++语言ATL支持类CImage
用VS2005建立WinXp下的C++程序,并在建立程序的时候,选择ATL支持
然后主文件中代码如下:
// WinXpCppAtl.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "WinXpCppAtl.h" #include <atlimage.h> //Cyan:CImage类的头文件 #ifdef _DEBUG #define new DEBUG_NEW #endif // 唯一的应用程序对象 CWinApp theApp; using namespace std; int _tmain( int argc, TCHAR * argv[], TCHAR * envp[]) { int nRetCode = 0; // 初始化 MFC 并在失败时显示错误 if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: 更改错误代码以符合您的需要 _tprintf(_T( "错误: MFC 初始化失败\n" )); nRetCode = 1; } else { // TODO: 在此处为应用程序的行为编写代码。 CImage m_Image; m_Image.Load(_T( "\\recvBmpData.bmp" )); m_Image.Save(_T( "\\recvBmpData.jpg" )); } return nRetCode; } |
注意:此方法可以进行文件操作也可以进行内存中转码操作,但是却也只能在WinXp下进行,在WinCe下无法成功。虽然WinCe下的ATL也有此CImage类,但是提供的方法比XP下有限,无法满足WinCe平台下的格式转换要求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架