三个问题:怎么读JPEG图片到内存,怎么在内存在把JPEG转为BMP(用类库也行)
解决方案 »
- 关于flash播放与暂停的疑惑
- 这样的两个对话框如何实现交互?
- 透明处理加色,困扰很久
- 在它被摧毁之前
- 请教,字符串赋值之后数据会丢失吗?
- 对于不同网速的Client通过TCP/IP连接到同一台Server上在向Client传送数据时,互不影响。(分可以在给)
- 菜鸟快贴:怎么删出对象组
- 金山词霸2002有没有补丁什么的?我现在开IE都不敢用了,一用就非法操作了!!!
- 显示的烦恼之一
- 关于WM_QUERYENDSESSION的处理:该处理过程中的messagebox没有显示是怎么回事?messagebox的返回值是什么?
- Internet Explorer_Server是什么东东
- 有什么类库能在内存中把JPG转成BMP
bool Load(const TCHAR* filename, DWORD imagetype=0);内存中转为bmp文件格式
bool Encode(BYTE * &buffer, long &size, DWORD imagetype);如果是想获得hbitmap
HBITMAP MakeBitmap(HDC hdc = NULL);如果是想存为文件
bool Save(const TCHAR* filename, DWORD imagetype);
static Image* Image::FromFile(const WCHAR *filename,
BOOL useEmbeddedColorManagement
);
Status Image::Save(IStream *stream,
const CLSID *clsidEncoder,
const EncoderParameters *encoderParams
);
Status Image::Save(const WCHAR *filename,
const CLSID *clsidEncoder,
const EncoderParameters *encoderParams
);
TJPEGImage *jpeg=new TJPEGImage;
Graphics::TBitmap *bmp=new Graphics::TBitmap;
jpeg->LoadFromFile(ImageName);
bmp->Assign(jpeg);
要强大功能,可以用openCV完全可以
img.load("1.jpg");
img.save("1.bmp",ImageFormatBMP);
image.Load ("1.jpg");
之后int imageSize = 怎么得到长度,
怎么建立一个流,然后用image.save(流,"1.bmp");
怎么返回一个流后重新得到BMP的文件头跟其实的,再分配内存,再保存为BMP文件
每一步都不能省,有人会的吗
img.Save(IStream* pStream,ImageFormatBMP)
HGLOBAL m_hMem = GlobalAlloc(GMEM_MOVEABLE, 0);
IStream *pstm=NULL;
CreateStreamOnHGlobal(m_hMem, TRUE, &pstm);
img.Save(pstm, ImageFormatBMP);
if(pstm == NULL) return;
LARGE_INTEGER liBeggining = { 0 };
pstm->Seek(liBeggining, STREAM_SEEK_SET, NULL);
//DWORD wTemp=GlobalSize(m_hMem);
LPBYTE lpData = (LPBYTE)GlobalLock(m_hMem);
第二个参数为0行吗?,还有就是 CImage image;
HRESULT hr =image.Load ("1.jpg");
if(S_OK != hr)
{
AfxMessageBox("load出错");
}
COleStreamFile image_stream ;
image_stream.CreateMemoryStream(NULL);
IStream* stream =image_stream.GetStream ();
hr =image.Save(stream,Gdiplus::ImageFormatBMP);
这段代码对不,要是对的话,得到stream的流之后,怎么整回一张BMP图片来
http://www.cnblogs.com/zhixing/
但是做图像处理用Opencv比较好。
Opencv2.3.1 读图像并且显示保存的代码如下: Mat img = imread("d:\\img.jpg"); imshow("show image", img); imwrite("d:\\img.bmp",img);