![]() |
Problem mit Resourcendatei
Hallo Leute !
Ich habe folgendes Problem. Ich vergleiche 2 Bilder Pixelweise, wenn ich die Bilder von der Platte lade funktioniert alles. Sie werden verglichen und richtig oder falsch ausgegeben. Wenn ich jetzt die Bilder aber aus meiner Datei hole (eingebunden als Resource) kommt immer falsch raus. Woran kann das liegen ? MfG |
Re: Problem mit Resourcendatei
nich dass ich ne ahnung hätte aber code wäre vielleicht ganz hilfreich, oder? :)
:dp: merry first Post :mrgreen: |
Re: Problem mit Resourcendatei
Hier mein Source :
Delphi-Quellcode:
Warum werden meine Bilder nicht mehr original verglichen ? :?:
procedure TForm1.BilderVergleichenAlt;
var x, y, bildindex, count: integer; begin for bildindex := 0 to 9 do begin sleep(100); count := 0; // form1.Image3.Picture.Bitmap.LoadFromResourceName(HInstance,'alt_winkel_' + inttostr(bildindex)); form1.Image3.Picture.LoadFromFile('alt_winkel_'+inttostr(bildindex)+'.bmp'); for x := 0 to form1.Image2.Picture.Bitmap.Width - 1 do for y := 0 to form1.Image2.Picture.Bitmap.Height - 1 do if form1.Image2.Canvas.Pixels[x, y] = form1.Image3.Canvas.Pixels[x, y] then inc(count); if count = 60 then begin form1.Edit3.Text := form1.Edit3.Text + inttostr(bildindex); exit; end; end; end; |
Re: Problem mit Resourcendatei
heißen die in der ressource wirklich alt_winkel_0 etc. oder Alt_Winkel_0 etc. beachte die groß- und kleinschreibung bei ressourcennamen
ich weiß net ob man mit canvas.pixels auf das picture zugreifen kann oder nur auf das canvas selbst |
Re: Problem mit Resourcendatei
Ja die Namen sind alle klein geschrieben und so wie ich es gepostet habe. Wie gesagt wenn ich sie von der Platte lade ist alles OK nur aus der Resource heraus funktioniert es nicht !!!
|
Re: Problem mit Resourcendatei
hmm, hmm.
vielleicht geht ja:
Delphi-Quellcode:
{form1.}{kann man eigentlich auch weglassen, oder?}Image3.Picture.Bitmap.LoadFromResourceID(hInstance, bildindex + XXX);
|
Re: Problem mit Resourcendatei
Die Bilder werden ja geladen, nur beim Vergleichen kommt nur noch Müll raus.
|
Re: Problem mit Resourcendatei
vielleicht hast du die bilder nach dem compillieren der ressourcen nochmal geändert?
|
Re: Problem mit Resourcendatei
Nein hab ich nicht. Die Bilder in der Resource sind die gleichen wie die die ich von der Platte lade. Und bei denen von der Platte funktioniert es ja.
|
Re: Problem mit Resourcendatei
Hat denn außer mir keiner ne idee? ich bin jetzt auch völlig ratlos... :|
|
Re: Problem mit Resourcendatei
Hi,
Hast du mal mit ResHack oder etwas ähnlichem überprüft, ob die Ressource auch wirklich in der exe vorhanden ist? Wenn die Ressource nicht vorhanden ist, könntest du mal versuchen, die Exe zu löschen und komplett neu erstellen zu lassen. Der Code sieht korrekt aus... |
Re: Problem mit Resourcendatei
Kannst du mir sagen was ResHack ist. Und ja die Bilder werden ja auch angezeigt. Aber ich werde es prüfen wenn ich weiss was ResHack ist.
|
Re: Problem mit Resourcendatei
Hi,
du kannst ja ansonsten mal versuchen die Ressource als binäre Datei zu laden. Also eine Ressource mit RCDATA anstatt mit BIMAP erstellen. Dann mit TResourceStream und RT_RCDATA die Ressource laden. Und danach das Bild mit Hilfe von Bitmap.LoadFromStream laden. Das ist natürlich dann schön kompliziert aber eventuell ein Versuch wert. |
Re: Problem mit Resourcendatei
Danke werde ich mal versuchen, aber kann mir noch einer sagen was ResHack ist und wo ich es herbekomme ?
|
Re: Problem mit Resourcendatei
|
Re: Problem mit Resourcendatei
Wenn Bilder aus den Resourcen geladen werden ist die Frage, ob er nicht eine Anpassung vornimmt. In resourcen eingebettete Bilder bestehen meistens aus den reinen Bilddaten ohne Header, also DDB Format. Dadurch könnten die Farben nicht mehr 100%ig die gleichen sein und dadurch schlägt der Pixels Vergleich fehl, da der ermittelte Farbcode leichte Abweichungen hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz