Autor Beitrag
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 23.03.03 18:51 
Hallo!

Ich habe ein leidiges Problem. Ich habe einen Grafikkonverter den ich in ein BitMap umwandlen möchte, damit ich darauf zeichnen kann.
Das umwandeln klappt auch wunderbar, nur leider habe ich manchmal einen unsauberes Bild. Ich weiss das dies mit dem PixelFormat zu tun hat, denn ich habe das schon auf mehreren Seiten gelesen. Leider bekomme ich es trotzdem nicht.
Hier mein Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure AssignBitmap(var Bitmap: TBitmap;
  const Picture: TPicture);
begin
  Bitmap.PixelFormat := pf24bit;
  Bitmap.Height := Picture.Height;
  Bitmap.Width := Picture.Width;
  Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height));
  Bitmap.Canvas.Draw(0, 0, Picture.Graphic);
  Bitmap.PixelFormat := pf24bit;
end;
Hat jemand irgend eine Idee?

Gruß wulfskin!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: So 23.03.03 20:39 
Hi,

also ich seh bei mir absolut keinen unterschied zwischen den Bildern wenn ich sie mit deiner Procedure hin und herschiebe... :)

gib mir mal bitte ein TestBild bei dem ich den unterschied sehe ;)

Au'revoir,
Aya~

PS: Hast du mal Bitmap.Assign(Picture.Graphic); versucht??

_________________
Aya
I aim for my endless dreams and I know they will come true!
wulfskin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 23.03.03 20:56 
@AYA: Ich lade gleich das Bild hoch! Mit Bitmap.Assign bekomme ich kein Unterschied.
Ist echt ein bisschen komisch, den manchmal geht es und manchmal auch net :(!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
wulfskin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 23.03.03 21:42 
Hallo Aya!

Habe jetzt festgestellt, dass es doch net an dem PixelFormat liegt (manchmal sieht man den Wald vor lauter Bäumen nicht :().
Es liegt an StretchBlt, mit der ich das Bild auf die PaintBox zeichne, denn mit StretchDraw geht es. Eigentlich könnte ich ja zufrieden sein, aber mich würde trotzdem brennend interessieren, was an dieser StretchBlt-Anweisung falsch ist:
ausblenden Quelltext
1:
2:
3:
StretchBlt(Canvas.Handle, Pos.x, Pos.y, Size.x, Size.y,
          BitMap.Canvas.Handle, Src.Left, Src.Top, Src.Right, Src.Bottom,
          SRCCOPY);
So und damit du dir vorstellen kannst, wie das Bild dann aussieht, hier die 2 Bilder im Vergleich:
user defined image user defined image

Vielen Dank
wulfskin

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.