Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Problem mit Resourcendatei (https://www.delphipraxis.net/95458-problem-mit-resourcendatei.html)

mg4all 6. Jul 2007 18:52


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

dajuhsa 6. Jul 2007 20:57

Re: Problem mit Resourcendatei
 
nich dass ich ne ahnung hätte aber code wäre vielleicht ganz hilfreich, oder? :)

:dp: merry first Post :mrgreen:

mg4all 6. Jul 2007 21:40

Re: Problem mit Resourcendatei
 
Hier mein Source :

Delphi-Quellcode:
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;
Warum werden meine Bilder nicht mehr original verglichen ? :?:

dajuhsa 7. Jul 2007 16:51

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

mg4all 8. Jul 2007 19:40

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 !!!

dajuhsa 8. Jul 2007 20:02

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);

mg4all 8. Jul 2007 21:56

Re: Problem mit Resourcendatei
 
Die Bilder werden ja geladen, nur beim Vergleichen kommt nur noch Müll raus.

dajuhsa 8. Jul 2007 22:30

Re: Problem mit Resourcendatei
 
vielleicht hast du die bilder nach dem compillieren der ressourcen nochmal geändert?

mg4all 8. Jul 2007 22:36

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.

dajuhsa 8. Jul 2007 22:40

Re: Problem mit Resourcendatei
 
Hat denn außer mir keiner ne idee? ich bin jetzt auch völlig ratlos... :|

Namenloser 8. Jul 2007 22:46

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...

mg4all 8. Jul 2007 22:51

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.

bitsetter 8. Jul 2007 22:53

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.

mg4all 8. Jul 2007 23:14

Re: Problem mit Resourcendatei
 
Danke werde ich mal versuchen, aber kann mir noch einer sagen was ResHack ist und wo ich es herbekomme ?

bitsetter 8. Jul 2007 23:20

Re: Problem mit Resourcendatei
 
Bei Google suchenresource hacker

Muetze1 9. Jul 2007 00:45

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 07:25 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