Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Bitmap Datein in Delphi anzeigen und andere sachen (https://www.delphipraxis.net/126631-bitmap-datein-delphi-anzeigen-und-andere-sachen.html)

taaktaak 30. Dez 2008 22:24

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
Delphi-Quellcode:
procedure TForm1.GetFarbe(var r, g, b: Byte; Bild: TBitmap; X, Y: Integer);
var
  Farbe: TColor;
begin
  Farbe := Bild.Canvas.Pixels[X, Y];
  r := GetRValue(Farbe);
  b := GetBValue(Farbe);
  g := GetGValue(Farbe);
end;
Das ist eine Methode deines Formulars, die du für deine Zwecke aufrufen kannst. Du übergibst dein Bitmap und die gewünschte Bildkoordinate; Rückgabewerte sind die 3 Farbanteile des angegebenen Punkts.

Sunlight7 30. Dez 2008 22:25

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
Wenn Du Dich mit den Pixeln spielen willst solltest Du lieber nach Hier im Forum suchenScanLine in der DP suchen, Canvas.Pixels ist sowas von (gähn) langsam...

Edit:
Praktisches Beispiel: http://www.delphipraxis.net/internal...=625469#625469

gaui 30. Dez 2008 22:37

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
Delphi-Quellcode:
unit Facharbeit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Open: TOpenDialog;
    bBildladen: TButton;
    Image1: TImage;
    bPixelauslesen: TButton;
    efPixel: TEdit;
    procedure bBildladenClick(Sender: TObject);
    procedure bPixelauslesenClick(Sender: TObject);
  private
    { Private-Deklarationen }
    DasBitmap:TBitmap;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.bBildladenClick(Sender: TObject);
begin

 //TForm1 OnCreate;
begin
  DasBitmap := TBitmap.Create;
end;
      if Open.Execute then
      begin
      if Open.Execute then begin
       DasBitmap.LoadFromFile(Open.FileName);
       Image1.Picture.Bitmap.Assign(DasBitmap)
       end;
      end;

//TForm1 OnDestroy;
begin
  DasBitmap.Free;
end;

end;

procedure TForm1.bPixelauslesenClick(Sender: TObject);
begin
     efPixel.text:=(DasBitmap.ScanLine[]);
end;

end.
so 2 Fragen wenn ich scanline verwende was gibt mir scanline? eig die Farb werte oder? dann würd ich die gerne in dem edit feld ef Pixel darstellen nur klappt das mal wieder nicht... könnt ihr mir da mal helfen?

taaktaak 30. Dez 2008 22:44

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
gaui :shock:
Bevor wir bei ScanLine () einsteigen....
Was in aller Welt hast du mit OnCreate() und OnDestroy() gemacht?????

gaui 30. Dez 2008 22:48

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
wie??? ich hab das so gemacht das beim click des Buttons ein Bitmap erstellt wir und es funktioniert .. oke ihr kennt euch da besser aus was is falsch oder muss ich ändern? und wieso=?

Sunlight7 30. Dez 2008 22:51

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
Naja, Du erzeugst das Bitmap und gibst es gleich weieder frei, aber grundsätzlich frage ich mich, warum man das Bitmap nicht gleich mit Image1.Picture.LoadFromFile lädt, wenn man schon ein TImage verwendet. :gruebel:

gaui 30. Dez 2008 23:01

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
sagen wirs so davon wusste ich nix ich kenne nur die Methode der zuweisung :) lern das ja erst seit einem jahr.

gaui 30. Dez 2008 23:03

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
aber ich kann das so mit der zuweisung machen oder? dann mach ich eben noch einen Button der das Image freigibt und dsa Programm schließt das wäre doch oke oder nich`?

gaui 30. Dez 2008 23:16

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
also nochmal zu diesem scanline. Ich hab herausgefunden, dass das ein indizierter Zugriff ist aber ich weiß nicht wirklich was da rein muss
die Delphihilfe sagt
Delphi-Quellcode:
ScanLine[Row: Integer]: Pointer;
also Row is ja die Zeile das is mir klar aber bei Pointer bin ich planlos

Sunlight7 30. Dez 2008 23:27

Re: Bitmap Datein in Delphi anzeigen und andere sachen
 
Das mit der Zuweisung kannst Du machen, is halt n bißchen umständlicher, aber das TImage brauchste eigentlich nicht slebt freigeben, das macht Delphi für Dich ;)

Wenn Du meinem Link oben gefolgt wärst hättest Du eine Unit gefunden, in der SetPixel und GetPixel per ScanLine implementiert sind ;) (Es gäbe auch noch andere implementierungsmöglichkeiten)

Dazu zu sagen ist, das das nur bei 24 Bit (RGB) und 32 Bit (RGBA) Bitmaps so funktioniert, mit Pixelformat bekommst Du heraus, welches Format Deine Bitmap hat.

PS: Wenn Du mal kurz Zeit hast klicke auf http://www.delphipraxis.net/template.../icon_edit.gif, damt kannst Du Deine Posts edtieren und mußt nicht soviele hintereinander machen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.
Seite 3 von 5     123 45      

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