Programm starten mit JPG, im Programm als BMP verwenden ??
hallo,
bin gerade dabei mit Canvas ein wenig zu experimentieren. Habe quasi eine sehr große Karte auf der ich herumlaufen kann. Dazu lade ich eine BPM (1000x600) in ein TImage. Jetzt lasse ich mit mit canvas.copy nur den kleinen Teil anzeigen den ich brauche. Dieser ist auch noch vergrößert und stellt den Teil der map dar, in dem ich mich gerade aufhalte. Weil BMP s aber so groß sind wollte ich lieber das JPG-Format zum laden verwenden... wenn ich das mache kommt die Fehlermeldung das es nur mit BMP möglich ist sich einen Teil mit canvas.copy anzeigen zu lassen. Kann man das irgendwie umgehen ?? Irgendwie das jpg laden und dann nach dem Programmstart in ein BMP umwandeln, damit man die Funktion weiterhin nutzen kann ?? |
Re: Programm starten mit JPG, im Programm als BMP verwenden
Delphi-Quellcode:
Glaub ich...
procedure LoadJPG(Buffer: TImage);
var jpeg: TJPEGImage; begin jpeg := TJpegImage.Create; jpeg.LoadFromFile('bla.jpg'); Buffer.Picture.Bitmap.Assign(jpeg); jpeg.Free; end; |
Re: Programm starten mit JPG, im Programm als BMP verwenden
jau hat super geklappt =)
nun würde ich gerne noch einen schritt weiter gehen und das JPG-Bild im Quellcode haben. soll bedeuten, wenn ich jmd. die Exe schicke, möchte ich nicht immer noch das JPG-Bild mitsenden müssen. Geht das ? |
Re: Programm starten mit JPG, im Programm als BMP verwenden
Pack das Bild in die Ressourcen.
|
Re: Programm starten mit JPG, im Programm als BMP verwenden
Wie gehtn das ?
|
Re: Programm starten mit JPG, im Programm als BMP verwenden
Schau mal z.B. bei den Schweizern (statt BITMAP musst Du RC_DATA nehmen).
|
Re: Programm starten mit JPG, im Programm als BMP verwenden
hmm irgendwie will er das nicht richtig laden.... er sagt immer das er die Ressource datei nicht finden kann. Könnte jmd. so freundlich sein und sagen was falsch ist, bekomme das einfach nicht hin.
Code:
Das mit dem erstellen der RES-Datei hat geklappt. Da steht jetzt das bild und das drin : 1 RCDATA "background_kl.jpg" Die datei trägt den Namen myres.res
var jpeg : TJPEGImage;
stream:TResourceStream; begin jpeg := TJpegImage.Create; try Stream := TResourceStream.Create(hinstance, 'myres.res', RT_RCDATA); try jpeg.LoadFromstream(stream); imgback.Picture.Bitmap.Assign(jpeg); finally Stream.Free; end; finally jpeg.Free; end; er meckert aber bei der Zeile, das er die Ressourcedatei nicht finden kann:
Code:
was ist dort falsch ???
Stream := TResourceStream.Create(hinstance, 'myres.res', RT_RCDATA);
|
Re: Programm starten mit JPG, im Programm als BMP verwenden
Du hast eine Grafik in der Ressource mit der ID 1. Also müsste
Delphi-Quellcode:
da besser passen.
Stream := TResourceStream.CreateFromID(hinstance, 1, RT_RCDATA);
|
Re: Programm starten mit JPG, im Programm als BMP verwenden
wenn ich diese Zeile :
Delphi-Quellcode:
durch diese ersetze:
Stream := TResourceStream.Create(hinstance, 'myres.res', RT_RCDATA);
Delphi-Quellcode:
kommt eine Access violation...
Stream := TResourceStream.CreateFromID(hinstance, 1, RT_RCDATA);
Müsste ich nicht noch irgendwo sagen aus welcher RES-Datei er das einlesen soll ?? |
Re: Programm starten mit JPG, im Programm als BMP verwenden
Nein, wenn Du die Zeile
Delphi-Quellcode:
eingefügt hast, ist diese ja gegen Deine *.exe gelinkt (daher ja auch hInstance). Der Fehler muss woanders liegen.
{$R Deine_Ressource.res}
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz