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平台下的格式转换要求。

 

 

posted @ 2010-11-29 21:43  一点一滴的Beer  阅读(1176)  评论(2编辑  收藏  举报