Entwickler-Ecke
Multimedia / Grafik - Graustufen-Bitmap erstellen und Pixelzugriff beschleunigen
[r2d2] - So 09.11.03 04:17
Titel: Graustufen-Bitmap erstellen und Pixelzugriff beschleunigen
Hi
Ich habe zwei Fragen:
1.
Wie kann man sich eine Graustufen-Bitmap erstellen? Ich meine nicht den Durchschnittswert der RGB-Werte zu berechnen, sondern wirklich eine Bitmap mit nur einem Kanal, die dann auch nur ein drittel des Speichers einer RGB-Bitmap belegt.
2.
Kann man den Zugriff auf die Pixel einer Bitmap irgendwie beschleunigen? Bei Photoshop z.B. gehen Pixelveränderungen ja sehr schnell. Ich krieg eine einfache Abdunklung einer Bitmap in nicht annähernd der Geschwindigkeit hin und so viel kann ich da ja auch nicht anders machen, oder? :shock:
thx
[r2d2] - Di 11.11.03 00:53
Ich nehm bis jetzt CanvasPixels. Aber wenns anders schneller geht dann schreib ich mein Prog eben um.
Und kennt jemand ne Atwort auf Frage Nr.1? Die wär auch noch wichtig :roll:
Phantom1 - Di 11.11.03 10:31
Zu Frage 1 müsste folgendes reichen:
Delphi-Quelltext
1:
| Bmp.PixelFormat:=pf8bit; |
Zu Frage 2, habe ich hier mal ein beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| Procedure TForm1.BmpGreyScale(Bmp: TBitmap); Type TRGB = Packed Record b, g, r: Byte End; Var PRGB: ^TRGB; x,y: Integer; m: Byte; Begin Bmp.PixelFormat:=pf24bit; For y := 0 to Bmp.Height-1 Do Begin PRGB:=Bmp.ScanLine[y]; For x := 0 to Bmp.Width-1 do begin m:=(PRGB^.r+PRGB^.g+PRGB^.b) Div 3; PRGB^.r:=m; PRGB^.g:=m; PRGB^.b:=m; Inc(PRGB); End; End; End; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!