*.ico nach *.bmp
-
Also ungefähr so:
Graphics::TBitmap *Bitmap = new Graphics::TBitmap; Bitmap->Width = Image1->Width; Bitmap->Height = Image1->Height; Bitmap->Canvas->StretchDraw(Rect(0,0, Image1->Width, Image1->Height), Bitmap); Image2->Picture->Bitmap = Bitmap; delete Bitmap;nur geht das nicht. Ich bekomme in Image2 nur ein komplett weises bild.
-
Ist doch logisch, du zeichnest den Inhalt des (leeren) Bitmap auf das Bitmap.

Allerdings stretcht StretchDraw wohl auch nur bei BMPs als Vorlage, Icons werden in Originalgrösse kopiert. Du könntest also genauso CopyRect verwenden.
-
kannst du mir mal ein beispiel zu CopyRect geben, wie man etwas vom einen Image ins andere kopiert?
in der hilfe steht nur, wie man etwas im selben bild kopiert.
-
ZielCanvas->CopyRect(ZielRect, QuellCanvas, QuellRect);
-
danke,
aber jetzt bekomme ich wieder die fehlermeldung, dass man nur bitmaps verändern kann. wobei das icon ja nicht verändert wird, es wird ja nur von dort gelesen.
-
Quelltext?
-
In image1 ist das icon. in image2 soll das bmp.
TRect quelle = Rect(0,0,Image1->Width, Image1->Height); Image2->Canvas->CopyRect(quelle, Image1->Canvas, quelle);
-
Image1->Canvas->Draw(0, 0, Image2->Picture->Graphic); Image1->Picture->Bitmap->SaveToFile("f:\\test.bmp");Diesmal getestet.

-
also da bekomme ich genau den gleichen fehler (dass man nur bitmaps verändern kann)
-
In meinem Beispiel sind Image1 und Image2 im Vergleich zu deinem "vertauscht". Versuch doch mal, zu verstehen, was da jeweils abläuft, dann sollten dir solche Fehler eigentlich selbst auffallen.