W
Hallo.
Vielen Dank für den Tip mit
Canvas->CopyRect(...)
.Leider gabs beim verkleinern extreme Artefakte in den Thumbs.
Keine Ahnung woran das liegt.
Aber mit
Canvas->StretchDraw(...)
gibts saubere Thumbs.
Habs jetz, ohne TImage zu benutzen, so gelöst:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TJPEGImage *jpg = new TJPEGImage;
MyBitmap = new Graphics::TBitmap;
jpg->LoadFromFile("G:\\Bild.jpg");
MyBitmap->Assign(jpg);
float fak=GetFaktor(jpg->Width,jpg->Height,200);
int jpgBr=jpg->Width*fak;
int jpgHo=jpg->Height*fak;
TRect Ziel = Rect(0,0,jpgBr, jpgHo);
MyBitmap->Canvas->StretchDraw(Ziel,MyBitmap);
MyBitmap->PixelFormat=pf24bit;
MyBitmap->Width=jpgBr;
MyBitmap->Height=jpgHo;
jpg->Assign(MyBitmap);
jpg->SaveToFile("G:\\Thumbs\\th_Bild.jpg");
delete jpg;
delete MyBitmap;
}
//---------------------------------------------------------------------------
float TForm1::GetFaktor(int BildBreite,int BildHoehe, int ZielWert)
{
float br,ho,we,erg;
br=BildBreite;
ho=BildHoehe;
we=ZielWert;
if (BildBreite>=BildHoehe) {
erg=we/br;
}
if (BildHoehe>BildBreite) {
erg=we/ho;
}
return erg;
}
Danke nochmal für den Versuch, zu Helfen.
wNw