|
감사합니다.
방금 테스트 해봤는데.. 아주 잘됩니다.
jpeg 이미지 용량 줄이는 부분에 해상도도 낮추어서 용량을 줄이는 것을 추가한 소스입니다.
void __fastcall TForm1::img_reduce(AnsiString Source, AnsiString Target)
{
TJPEGImage *JpgImg = new TJPEGImage();
Graphics::TBitmap *BmpImg = new Graphics::TBitmap();
int w,h,nw,nh;
try
{
JpgImg->LoadFromFile(Source);
w = JpgImg->Width;
h = JpgImg->Height;
if (w+h > 1200){
nw = w/2;
nh = h/2;
BmpImg->Height =nh;
BmpImg->Width = nw;
TRect Arect;
Arect.Top =0;
Arect.Right =nw;
Arect.Bottom =nh;
Arect.Left =0;
BmpImg->Canvas->StretchDraw(Arect,JpgImg);
}else{
BmpImg->Assign(JpgImg);
}
JpgImg->CompressionQuality = 50; // 해상도 설정입니다. 적당히 조절하시면 용량도 변해여
JpgImg->Assign(BmpImg);
JpgImg->SaveToFile(Target);
}
__finally
{
delete JpgImg;
delete BmpImg;
}
}
|