AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bitmap Datein in Delphi anzeigen und andere sachen
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap Datein in Delphi anzeigen und andere sachen

Ein Thema von gaui · begonnen am 30. Dez 2008 · letzter Beitrag vom 6. Jan 2009
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
gaui

Registriert seit: 30. Dez 2008
Ort: Tecklenburg
35 Beiträge
 
Delphi 5 Standard
 
#1

Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 00:20
Hallo erstmal! Also bin neu und hab ein paar fragen. Also ich muss eine Facharbeit (Jgst 12) über Bild Steganografie schreiben. Nun ja mein Lehrer verlangt von mir zusätzlich ein Programm mit dem man Nachrichten in Bildern verschlüsseln und entschlüsseln kann. Nur hab ich keine Ahnung wie ich eine bmp Datei in Delphi laden bzw. die einzelnen Pixel auslesen soll. Hab mir zwar die Delphi hilfe durchgelesen aber so richtig schlau geworden bin ihc daraus nicht. Da steht etwas über die Klasse TCanvas aber die kann nur create und so einige andere Methoden. Könnte mir da jemand vieleicht helfen?? Schön mal danke im voraus und Guten Rutsch euch allen!
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

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

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 00:34
HI und willkommen in der DP.

Deine Bilder lädst du am besten und einfachsten in ein TBitmap.
BSP:
Delphi-Quellcode:
procedure TForm1.Landen(DatName: TFileName);
var
  Bild: TBtmap;
begin
  Bild := TBitmap.Create;
  Bild.LoadFromFile(DatName); // Muss als Endung unbedingt .bmp haben
  Bild.Free; // keine Speicherprobleme erzeugen
end;
So und das Bild ist dann auch gleich wieder aus dem Speicher gefegt. (Was für'n Schwachsinn :-*)

Auf die einzelnen Pixel wolltest du mit TCanvas zugreifen, was auch nicht abzuraten ist.

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;
Bernhard

Guten Rutsch
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
gaui

Registriert seit: 30. Dez 2008
Ort: Tecklenburg
35 Beiträge
 
Delphi 5 Standard
 
#3

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 01:33
oke das is alles so naja schön xD aber ich kenn mich da net wirklich aus programmiere erst seit einem Jahr also erstmal wenn ich ein neues Projekt erstelle muss ich doch irgendwie einen auslöser haben z.B. einen Button. So wenn ich jetzt den Button habe dann muss ich doch erst die Klasse Tbitmap erstellen um mit ihr zu arbeiten.
Also bei mir sieht das dann folgender Maßen aus:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    bBildladen: TButton;
    procedure bBildladenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Bitmap1: Tbitmap;

implementation

{$R *.DFM}

procedure TForm1.bBildladenClick(Sender: TObject);
var lBild:TBitmap;
begin
     lBild:= TBitmap.create;
     lBild.LoadFromFile(xxx)


end;

end.

Mein Problem ist jetzt da das ich zunächst nicht weiß wie ich den Dateinamen für LoadfromFIle angeben soll.
Wäre nett wenn sie es mir erklären würden und nicht nur die lösung hinschreiben weil ich hab vor Informatik als ein Abi fach zuwählen und wenn ich das dann nicht verstehe ist das schlecht

[edit=Sharky][delphi]-Tag gesetzt. Bitte verwende diese in Zukunft. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#4

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 02:10
Zitat von rollstuhlfahrer:
// Muss als Endung unbedingt .bmp haben
Stimmt nicht, es könnte auch ein .wmf oder .emf sein

@gaui:
Wenn Deine Bitmaps immer im selben Verzeichnis sind, kannst DuBitmap.LoadFromFile('C:\DeinPfad\DeinBitmap.bmp'); verwenden.


Soll es aus dem Verzeichnis geladen werden, wo Deine Exe drinnen ist dann:Bitmap.LoadFromFile(ExtractFileDir(Application.ExeName)'\DeinBitmap.bmp'); Oder wenn es der Benutzer selber laden können soll, dann suchst Du im Forum nach Hier im Forum suchenTOpenDialog und verwendest dann
Bitmap.LoadFromFile(OpenDialog1.FileName);
Zitat von gaui:
Bitmap Datein in Delphi anzeigen und andere sachen
Für die anderen Sachen, dann bitte neue Threads, pro Thread soll es nur um ein Thema gehen
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#5

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 07:14
Hallo!

In deinem Fall würde ich die Variable für das Bitmap in die Private-Sektion des Form verschieben, im OnCreate-Ereignis des Formulars erzeugen und im OnDestroy-Ereignis wieder freigeben. Damit hast du mit dem Erzeugen des Formulars bereits eine Instanz für dein Bitmap, die beim Beenden wieder entfernt wird.

Delphi-Quellcode:
type
TForm1 = class(TForm)
bBildladen: TButton;
procedure bBildladenClick(Sender: TObject);
private
{ Private-Deklarationen }
  DasBitmap: TBitmap;
public
{ Public-Deklarationen } 
end;

var
Form1: TForm1;

implementation

{$R *.DFM} 


//TForm1 OnCreate;
begin
  DasBitmap := TBitmap.Create;
end;

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

end;

end.
Für das Laden des Bildes würde ich auch auf jeden Fall einen TOpenDialog nehmen. Diesen findest du in der Tool-Palette unter "Dialoge". Schau dir dabei auch mal die Eigenschaften im Objektinspektor an. Interessant für dich könnte u.a. "Filter" sein. Damit kannst du dir nur Dateien mit einer bestimmten Endund (z.B. *.bmp) anzeigen lassen. Der Dialog lässt sich beispielsweise in einer ButtonClick-Prozedur aufrufen:

Delphi-Quellcode:
procedure TfMain.btBildLadenClick(Sender: TObject);
begin
  if OpenDialog.Execute then begin //Execute ist True, wenn du den FileDialog mit dem Klicken des OK-Button beendest.
  DasBitmap.LoadFromFile(OpenDialog.FileName); //Hier lädst du jetzt das Bild
  end;
end;
Zum Anzeigen auf dem Formular bietet sich ein TImage an. Diesem kannst du das geladene Bitmap zur Anzeige zuweisen (mit Image.Picture.Bitmap.Assign).
  Mit Zitat antworten Zitat
gaui

Registriert seit: 30. Dez 2008
Ort: Tecklenburg
35 Beiträge
 
Delphi 5 Standard
 
#6

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 10:11
oke direkt ne Frage zu diesem oncreate und on destroy sind das Methoden von TForm? und dieses TOPenDialog wo krieg ich das im Forum her
? weil ihc muss das ja als ein Tool für Delphi einfügen? danke schon mal für die Hilfe
  Mit Zitat antworten Zitat
gaui

Registriert seit: 30. Dez 2008
Ort: Tecklenburg
35 Beiträge
 
Delphi 5 Standard
 
#7

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 10:15
und wenn ich das so mach
Zitat:
Bitmap.LoadFromFile(ExtractFileDir(Application.Exe Name)'\DeinBitmap.bmp');
dann erscheint eine Access Vialotion
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 10:16
onCreate und onDestroy sind Ereignisse von TForm
TOpenDialog findest Du unter dem Reiter Dialoge (Dialogs).

Bitmap.LoadFromFile(ExtractFileDir(Application.ExeName)+'\DeinBitmap.bmp'); Da fehlt zumindest ein Pluszeichen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
gaui

Registriert seit: 30. Dez 2008
Ort: Tecklenburg
35 Beiträge
 
Delphi 5 Standard
 
#9

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 10:50
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    bBildladen: TButton;
    Image1: TImage;
    OpenDialog1: TOpenDialog;
    procedure bBildladenClick(Sender: TObject);
    procedure OpenDialog1CanClose(Sender: TObject; var CanClose: Boolean);
  private
    { Private-Deklarationen }
    Bitmap1: Tbitmap;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;



implementation

{$R *.DFM}

procedure TForm1.bBildladenClick(Sender: TObject);
var lBild:TBitmap;
begin
    // lBild:= TBitmap.create;
     //Image1:= lBild.LoadFromFile('D:\Dokumente und Einstellungen\Admin\Desktop\Informatik1')


end;

procedure TForm1.OpenDialog1CanClose(Sender: TObject;
  var CanClose: Boolean);
begin
     if OpenDialog1.Execute then
     begin
     Bitmap1.LoadFromFile(OpenDialog1.Bilder);
     end;
end;
so das steht bei mir da
Zitat:
Bitmap1.LoadFromFile(OpenDialog1.Bilder);
nur öffnet der den Ordner Bilder nicht er kennt den Begriff einfach nicht. Das zweite Problem is das er diesen OpenDialog zwar im Formular anzeigt aber nicht im Debugger

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Bitmap Datein in Delphi anzeigen und andere sachen

  Alt 30. Dez 2008, 10:53
versuche mal

Bitmap1.LoadFromFile(OpenDialog1.FileName); Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 07:23 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