T
tzvnet
Unregistered / Unconfirmed
GUEST, unregistred user!
用API实现,不用JPEG单元,已经有转换JPEG到BMP的单元。
var
dc , tmpDC: HDC;
bmp: HBITMAP;
pStru
AINTSTRUCT;
pImg
ointer;
MS:TMemoryStream;
Bf:BITMAPFILEHEADER;
Bmf: TBitmapFileHeader;
WM_PAINT:begin
BeginPaint(hWnd,pStru);
/////LoadJpegFile(JpegFileName:string;var pImg
ointer):Boolean;
if LoadJpegFile('221_2.jpg',pImg) then begin //转换位图
MS:=TMemoryStream.Create;
CopyMemory(@bf,pImg,sizeof(BITMAPFILEHEADER));
MS.Write(pImg^,bf.BfSize);
MS.ReadBuffer(Bmf, sizeof(Bmf));
//已经将位图储存到流中
//问题就在这,应该怎么把MS到BMP中。或者能否有更简单的方法?//bmp: HBITMAP;
//BMP:=
MS.Free;
FreeMem(pImg);
tmpDc := CreateCompatibleDC(DC);
Oldbmp := SelectObject(tmpDC,bmp);
BitBlt(DC,0,0,500,500,tmpDC,0,0,SRCCOPY);
SelectObject(tmpDC,oldbmp);
DeleteDC(tmpDC);
DeleteObject(bmp);
ReleaseDC(hWnd,dc);
EndPaint(hWnd,pStru);
end;
var
dc , tmpDC: HDC;
bmp: HBITMAP;
pStru
![Stick Out Tongue :P :P](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f61b.png)
pImg
![Stick Out Tongue :P :P](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f61b.png)
MS:TMemoryStream;
Bf:BITMAPFILEHEADER;
Bmf: TBitmapFileHeader;
WM_PAINT:begin
BeginPaint(hWnd,pStru);
/////LoadJpegFile(JpegFileName:string;var pImg
![Stick Out Tongue :P :P](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f61b.png)
if LoadJpegFile('221_2.jpg',pImg) then begin //转换位图
MS:=TMemoryStream.Create;
CopyMemory(@bf,pImg,sizeof(BITMAPFILEHEADER));
MS.Write(pImg^,bf.BfSize);
MS.ReadBuffer(Bmf, sizeof(Bmf));
//已经将位图储存到流中
//问题就在这,应该怎么把MS到BMP中。或者能否有更简单的方法?//bmp: HBITMAP;
//BMP:=
MS.Free;
FreeMem(pImg);
tmpDc := CreateCompatibleDC(DC);
Oldbmp := SelectObject(tmpDC,bmp);
BitBlt(DC,0,0,500,500,tmpDC,0,0,SRCCOPY);
SelectObject(tmpDC,oldbmp);
DeleteDC(tmpDC);
DeleteObject(bmp);
ReleaseDC(hWnd,dc);
EndPaint(hWnd,pStru);
end;