AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia BitBld und Anzeige in Image
Thema durchsuchen
Ansicht
Themen-Optionen

BitBld und Anzeige in Image

Ein Thema von nezumi7 · begonnen am 11. Apr 2011 · letzter Beitrag vom 11. Apr 2011
Antwort Antwort
nezumi7

Registriert seit: 11. Apr 2011
67 Beiträge
 
#1

BitBld und Anzeige in Image

  Alt 11. Apr 2011, 19:10
Nabend allerseits,

ich versuche bei einem Bitmap (bmp1) die Kanten abzuschneiten und das Ergebnis (bmp2) in einem TImage anzuzeigen.

So gehts:
Code:
procedure TForm1.Button5Click(Sender: TObject);
var
breite, hoehe: integer;
begin
breite := bmp1.Width-5;
hoehe := bmp1.Height-7;
BitBlt(image2.Canvas.Handle,0,0,breite,hoehe,bmp1.Canvas.Handle,0,0,SRCCOPY);
end;
so aber nicht:
Code:
procedure TForm1.Button5Click(Sender: TObject);
var
breite, hoehe: integer;
begin
breite := bmp1.Width-5;
hoehe := bmp1.Height-7;
BitBlt(bmp2.Canvas.Handle,0,0,breite,hoehe,bmp1.Canvas.Handle,0,0,SRCCOPY);
Image2.Picture.Bitmap := bmp2;
end;
In Image2 erscheint schlicht gar nix. Ich hätte aber gerne diese Variante. Was mache ich falsch?

Gruß, Stephan.
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: BitBld und Anzeige in Image

  Alt 11. Apr 2011, 19:12
Man zeichnet nicht direkt auf die Canvas einer TImage-Komponente! Wenn doch, dann muss die Komponente wohl "gerefreshed" werden. Nimm aber lieber eine PaintBox zur Ausgabe der Grafik.

mfg

Edit: Das mit dem Refresh bzw. Neuzeichnen sollte auch bei deiner zweiten Variante helfen...

Edit2: Willkommen übrigens in der Delphi-Praxis
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/

Geändert von patti (11. Apr 2011 um 19:14 Uhr)
  Mit Zitat antworten Zitat
nezumi7

Registriert seit: 11. Apr 2011
67 Beiträge
 
#3

AW: BitBld und Anzeige in Image

  Alt 11. Apr 2011, 19:26
Hi Patti,

Man zeichnet nicht direkt auf die Canvas einer TImage-Komponente!
ja, auch deshalb will ich ja die zweite Variante. Ich glaube der Fehler liegt eher bei der Zeile BitBlt...

Das mit dem Refresh hab ich nich verstanden. So gehts jedenfalls auch nicht:
Code:
BitBlt(bmp2.Canvas.Handle,0,0,breite,hoehe,bmp1.Canvas.Handle,0,0,SRCCOPY);
Image2.Picture.Bitmap := bmp2;
Image2.Refresh;
grübel, grübel...
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: BitBld und Anzeige in Image

  Alt 11. Apr 2011, 19:42
Code:
BitBlt(bmp2.Canvas.Handle,0,0,breite,hoehe,bmp1.Canvas.Handle,0,0,SRCCOPY);
Image2.Picture.Bitmap := bmp2;
Image2.Refresh;
Da ist noch ein klitzekleiner Fehler drin. Das muss heißen: Image2.Picture.Graphic.Assign().

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
nezumi7

Registriert seit: 11. Apr 2011
67 Beiträge
 
#5

AW: BitBld und Anzeige in Image

  Alt 11. Apr 2011, 19:56
Hi Bernhard,
Code:
BitBlt(bmp2.Canvas.Handle,0,0,breite,hoehe,bmp1.Canvas.Handle,0,0,SRCCOPY);
Image2.Picture.Graphic.Assign(bmp2);
geht auch nicht, da kommt dann eine Fehlermeldung (EAccessViolation ...)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

AW: BitBld und Anzeige in Image

  Alt 11. Apr 2011, 20:04
Klingt sehr komisch. Hast du dein Bitmap auch richtig erstellt?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 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