AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bild (z.B Bitmap) selbst zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

Bild (z.B Bitmap) selbst zeichnen

Ein Thema von Neutral General · begonnen am 6. Aug 2006 · letzter Beitrag vom 8. Aug 2006
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Bild (z.B Bitmap) selbst zeichnen

  Alt 6. Aug 2006, 17:38
Hi,

Mein Frage ist ganze einfach: Ich lade ein Bild (z.B ein Bitmap ) in einen Stream. Wie male ich nun diese Bild?
Ich weiß das man das alles einfacher machen kann aber ich versuche gerade eine Unit zu schreiben um Tga Dateien zu öffnen und in Wikipedia sind die Dateitypen ja beschrieben nur dann kommt irgendwann ein Abschnitt "Bilddaten" und danach schon der Dateifuß usw.. Nur wie bekomme ich aus diesen Bilddaten jetzt ein Bild ?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 6. Aug 2006, 17:42
naja, ein normales bildformat besteht z.B. aus bytes in der abfolge rgbrgbrgbrgbrgb.... das kannst du auslesen und zeichnen. zuvor aus dem header die auflösung und eben die bittiefe und die anordnung. Das musst du dann entsprechend umsetzen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 6. Aug 2006, 17:45
Zitat:
Wie male ich nun diese Bild?
Das Bild kann man unter Windows mit Windows API malen, wie sonst alles, oder mit hilfe OpenGL API oder DircetX.

Mehr möglichkeiten gibt es nicht.

Ursprungliche Datei -> Diese Datei laden und in ein API Freundlichesformat konvertieren -> API Funktionen aufrufen die für das Zeichen zuständig sind.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 6. Aug 2006, 17:54
Hi,
bei einem TGA handelt es sich um eine Rastergrafik. Was deine Unit letztlich am einfachsten realisieren kann ist der Umweg über ein Bitmap. Du liest die Daten in ihrer tga konformen Kodierung ein und erstellst daraus ein Bitmap, dass die Bildinformationen anzeigt. Das was du eigentlich zeichnest/anzeigst ist dann (sehr Windows üblich) ein Bitmap. Zudem hast du halt noch die Metadaten, die dir ein Tga bietet.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 6. Aug 2006, 17:56
Zitat von sniper_w:
Zitat:
Wie male ich nun diese Bild?
Das Bild kann man unter Windows mit Windows API malen, wie sonst alles, oder mit hilfe OpenGL API oder DircetX.

Mehr möglichkeiten gibt es nicht.

Ursprungliche Datei -> Diese Datei laden und in ein API Freundlichesformat konvertieren -> API Funktionen aufrufen die für das Zeichen zuständig sind.
Also entweder versteh ich dich nicht oder du mich nicht. Ich habe ungefähr das hier:

Delphi-Quellcode:
var S: TMemoryStream;
begin
  S:= TMemoryStream.Create;
  S.LoadFromFile('C:\z.B ein Bitmap.bmp');
  
  ...
   // Header auslesen etc
  ...
  // Bildaten
  // Wie lese ich jetzt die Bilddaten aus und zeichne sie z.B mit Canvas oder sonstirgendwie ?
  S.Free;
end;
In den Kommentaren steht schon etwa alles...

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 6. Aug 2006, 19:17
Du weißt doch wie man eine Bitmap anzeigt? Du kannst z.B. am einfachsten ein TImage verwenden. Dies kapselt alles, was du zur Anzeige in Windows brauchst.
Du hast eine TGA Datei, die kannst du einfach mit einem Filestream einlesen. Wie der Aufbau der Datei aussieht, findest du in der entsprechenden Spezifikation. Du kannst jetzt also eine Klasse TTga schreiben, die alles Funktionen und Eigenschaften die du unterstützen möchtest implementiert.
Beim Laden liest du dann die Datei (z.B. per Stream) ein und interpretierst hier die gelesenen Bytes. Du speicherst die Metainfos in deiner Klasse ab, legst eine Bitmap ab, dekodierst die Bytes, die die Pixel darstellen (geht alles aus der Spezifikation hervor) und schreibst diese in eine Bitmap.
Die kannst du wie gewohnt anzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 7. Aug 2006, 13:24
Noch ne Frage: Also ich will ja das ich am Ende nur meine Unit einbinden muss und dann kann das TImage Tga Dateien laden.. Was muss ich dazu alles tun? Ich muss doch Von TGraphic ableiten oder?
Aber das ist sicher nicht alles ?!

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 8. Aug 2006, 15:21
*push*

Ich will das ich mit nem Image Tga-Bilder laden kann wenn ich meine TGA-Unit eingebunden hab. Halt genauso wie TJPEGImage... Aber wie mach ich das denn? Das tolle ist nämlich das man nur ne jpeg.dcu hat und keine .pas und ich deshalb auch nix abgucken kann

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 8. Aug 2006, 15:30
Evtl. könntest du dir ja bei der 'GIFImage.pas' was abschauen
So wie ich das verstanden habe willste ja genau sowas machen.

(gibbet hier im forum öfter mal .. war auch bei "Bounce for Sakura" anbei)
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Bild (z.B Bitmap) selbst zeichnen

  Alt 8. Aug 2006, 16:17
Hab mir das mal angeschaut aber das Problem ist das ein Gif Bild aus mehreren Bildern bestehn kann und da alles noch komplizierter ist

Die Frage die ich mir schon die ganze Zeit stelle ist: Woher weiß das Image mit welcher Klasse es die Datei laden muss ?
Außerdem seh ich z.B beim Bitmap nirgendwo wo das eigentliche Bild geladen wird o.O
Also alles sehr komisch irgendwie

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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:36 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