Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
18. Jul 2005
An deinem Codeschnipsel liegst jedenfalls nicht, der klappt wunderbar in Zusammenhang mit BmpComp.
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
18. Jul 2005
Respekt, nicht schlecht!
Hab mal zum Vergleich statt des roten Rechtecks einen Ausschnitt generiert, immernoch rasant:
var
//...
bRect: TRect;
MemBmp: TBitmap;
//...
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Naja, in dem Fall ist TBitmap bei mir genauso schnell, kannst ja erstmal das wieder nehmen.
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Anbei das geänderte und unter D2005 kompilierte Projekt. Probier erst mal nur die .exe aus, brauchst nur die 2 bmps zurück in den Ordner kopieren.
Ich verwende auch die g32 1.71
@Jan
Namensvettern steht man eben zur Seite :-)
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Geschieht das denn bei den beigelegten Bildern? Also, under D2005 Personal gehts immer bis jetzt.
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Sieht doch gut aus eigentlich nur
r2:= rect(x_min,y_min,x_max+1,y_max+1);
//bild3.PixelFormat := bild.PixelFormat;
bild3.SetSize(x_max-x_min+1, y_max-y_min+1);
// bild3.Width:=x_max-x_min+1;
// bild3.height:=y_max-y_min+1;
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Bei Bitmap32 gehts ohne PixelFormat (oder vergleichbares). Kann dein Problem allerdings nicht nachvollziehen, wenn man reine Bitmaps verwendet.
Ist die ursprüngliche Quelle allerdings ein JPEG z.B., dann musst du den Vergleich etwas Fehlertoleranter gestalten, da hier die Farben von der Kompression verfälscht werden.
Statt bild.Canvas.pixels<>bild2.Canvas.pixels solltest du eine...
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Ich habs grad mal getestet:
- Bei Jans Variante fehlt nur noch das zweite Break, für die zweite Schleife
- Der Ziel-Rect (r) ist nicht definiert, ein Wunder das es bis jetzt geklappt hat, deswegen dürfteauch g32 ins schleudern gekommen sein.
- Bei bild3 sollte PixelFormat definiert werden, bei mir kam sonst EOutOfResources und die Höhe/Breite mit +1
bild3.PixelFormat :=...
Forum: Object-Pascal / Delphi-Language
Delphi
by scp,
17. Jul 2005
Nein, er geht das ganze Bild nicht zweimal durch, es wird ja direkt unterbrochen, sobald das erste unterschiedliche Pixel gefunden ist. Probiers doch einfach aus.
Du kannst das ganze von Jan auch auf g32 übertragen, dann ist es min. 3-4x so schnell.