Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
2. Feb 2010
Wo fehlt da noch ein inc() :? ? Ich hätte gesagt, dass die nachfolgende Version eigentlich klappen müsste.. Allerdings ist das nur die Version wo die bei meinem letzten Post angegeben Verbesserungsvorschläge eingearbeitet werden.
function Bitmapcompare(pic1, pic2: Tbitmap; Posx,posy: Integer): Boolean;
var
Pix1, Pix2 : PByte;
y, k, x : Integer;
bytes: Byte;
const
...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
2. Feb 2010
if (pic1.Width <> pic2.Width) or (pic1.Height <> pic2.Height) then
Das macht genau das was ich NICHT möchte. pic1 ist ja hat in den meisten Fällen (99% oder sogar mehr) eine größere Größe als pic1 sowohl in x als auch in y Richtung.
müsste es deshabl nicht so heißen?:
if (pic1.Width < pic2.Width) or (pic1.Height < pic2.Height) then //für den Fall, dass Bild1 in einer Richtung kleiner ist
...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
So ich habe das ganze nochmal eingehender studiert. Unten habe ich meine ursprüngliche Funktion noch mal aufgegriffen und versucht anzupassen. Allerdings will das nocht nicht so wie ich will :(. Wie gebe ich die x-koordinate für den Pixel an? Mein Gefühl sagt, mir das ich nur 2-3 Zeilen von der Lösung weg bin. Aber ich hoffe ich täusche micht nicht :P. Es wäre nett wenn mir da nochmal auf die...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
das ist dann doch noch langsamer, da es dann gleich zweimal kopiert wird...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
Ich habe das Bild im Moment als Tbitmap vorliegen.
myBmp.LoadFromFile( '<Filename goes here>' );
Das lädt ein Bitmap aus einer Datei, allerdings ist dieser vorgang schon längst passiert.. Kann ich an der Stelle irgendwie aus einer bestehenden Variable auslesen (Assign??) ?
Da das ganze nur ein kleiner Teil eines Programms ist und gerade diese Prozedur oft aufgerufen wird. Wäre interessant...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
Mh jetzt versteh ich schon wieder nur Bahnhof :P. Hatte mich gerade gefreut, dass das ganze so einfach lief :D
Also gut. Man vergleiche deinen und meinen Teil, da fällt auf, dass
//eine Abfrage dazukommt
bytes := PixelFormatBytes;
if bytes = 0 then
Exit;
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
function Bitmapcompare(pic1, pic2: Tbitmap; Posx,posy: Integer): Boolean;
var line1,line2: Pbytearray;
x,y: integer;
compix, matchpix: integer;
begin
Result:=false;
matchpix:=0;
compix:=0;
for y := 0 to pic2.Height - 1 do
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
ehm ja... Ich bin glaube ich zusehr Delphi Laie als das da zu sehen :(...
wie ich die jeweils richtige Zeile auslese hab ich glaube ich schon kappiert:
if Bild1.scanline=Bild2.Pixels then matchingpix:=matchingpix+1;
Allerdings wird in diesem Fall von Bild 1 die ganze Zeile gescannt. das will ich ja gar nicht :o . Ich möchte, dass ja nur ein bestimmter Teil des 1. Bildes gescannt...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
In meiner Hilfe (TurboDelphi "f1") sieht das seeehr mager aus.
Da komm ich nicht mit weiter. :(
Hast du vllt einen Link oder so? Auch ist mir noch nicht unklar wie ich bei ScanLine einen bestimmten Punkt in Bild1 angebe ab dem verglichen werden soll ...
Forum: Sonstige Fragen zu Delphi
Delphi
by KahPee,
1. Feb 2010
Hallo,
ich hatte so eine ähnliche Frage schon mal gestellt, allerdings bin ich bei der Umsetzung damals gescheitert.
Ich habe vor zwei Bitmaps zu vergleichen.
Ich hatte bei meinem ersten Versuch vorallem Probleme mit den konvertieren und ähnlichem. Aber nochmal zu dem Problem:
1. Die beiden Bitmaps haben unterschiedliche größen (Bild1 ist sowohl in y als auch in x Richtung "größer gleich"...