AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RGB -> Bitmap

Ein Thema von Neutral General · begonnen am 8. Aug 2006 · letzter Beitrag vom 12. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Neutral General
Neutral General

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

RGB -> Bitmap

  Alt 8. Aug 2006, 18:05
Hi,

Also der Threadname siehtn bisschen komisch aus
Es geht darum das ich einen Stream hab in dem tausenden RGB-Werte stehen.. Ungefähr so:

Zitat von Stream:
RGBRGBRGBRGBRGB...RGB
Nun will ich dadrauß en Bitmap machen (TBitmap).
Bisher hab ich das so gemacht das ich alle RGB Werte einzeln ausgelesen habe und die dann mit TBitmap.Canvas.Pixels gemalt habe aber das ist ehhmm "etwas" langsam...

Kann das vielleicht nicht etwa so machen :

Stream.Read(Bitmap, SizeOf(Byte)*Pixelanzahl*3); ?

So gehts glaub ich nicht aber halt so in der Richtung..

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 arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: RGB -> Bitmap

  Alt 8. Aug 2006, 18:09
Guck dir doch mal TBitmap.ScanLine in der OH an...
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  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
 
#3

Re: RGB -> Bitmap

  Alt 8. Aug 2006, 18:10
Mh kann man die auch zum schreiben von Pixeln benutzen ? o.O^^
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 JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

Re: RGB -> Bitmap

  Alt 8. Aug 2006, 20:06
Hi

Ich hatte mal ein aehnliches Problem, allerdings in C#, ich hab hier das erstellen des Bitmaps an dein Problem angepasst. Eine Uebersetzung sollte nicht die Allergroesste Schwierigkeit sein, da ja eigentlich nur Daten in einen Stream geschrieben werden
Code:
s.Write((ushort)0x4D42);
s.Write((uint)0);
s.Write((uint)0);
s.Write((uint)54);

s.Write((uint)40);
s.Write((uint)width); //Breite
s.Write((uint)height); //Hoehe
s.Write((ushort)1);
s.Write((ushort)24); //24bpp
s.Write((uint)0);
s.Write((uint)0);
s.Write((uint)0xEC4);
s.Write((uint)0xEC4);
s.Write((uint)0);
s.Write((uint)0);

for (int i = 0; i < height; i++)
{
   for (int j = 0; j < width; j++)
   {
      s.Write((byte)0); //B
      s.Write((byte)0); //G
      s.Write((byte)0); //R
   }
   for (int j = 0; j < (4 - (i * 3) % 4); j++) //die 3 bedeutet steht fuer die 24bpp in Byte
      s.Write((byte)0); //Jede Zeile wird auf eine 4Bit-Breite mit 0en aufgefuellt
}

h.Position = 2;
s.Write((uint)h.Length);
Eine genauere Beschreibung hatte ich auf Wikipedia gefunden: *klick*

greetz
Mike
Mike
Passion is no replacement for reason
  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: RGB -> Bitmap

  Alt 10. Aug 2006, 14:03
Hi,

Danke für den Ansatz ich glaube das wird mir helfen aber eine Zeile kann ich mir leider nicht übersetzen:

Delphi-Quellcode:
for (int j = 0; j < (4 - (i * 3) % 4); j++)
  s.Write((byte)0);
und was ist h ?

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 JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: RGB -> Bitmap

  Alt 10. Aug 2006, 14:12
Zitat von Neutral General:
Danke für den Ansatz ich glaube das wird mir helfen aber eine Zeile kann ich mir leider nicht übersetzen:

Delphi-Quellcode:
for (int j = 0; j < (4 - (i * 3) % 4); j++)
  s.Write((byte)0);
Das ist eine uebliche Forschleife, mit einer etwas komplizierteren Abbruchbedingung. Das sieht in Delphi ca. so aus, und fuellt die Zeilen auf einen durch 4(byte) teilbare Laenge.
Delphi-Quellcode:
for j := 0 to (4 - (i * 3) mod 4) - 1 do
  //...
Zitat von Neutral General:
und was ist h ?
Das war der Stream (ich weiss, einfallsreicher name )
Im Dateikopf wird auch die Groesse der Datei gespeichert, also die Groesse des Streams, das wird hier eben nachtraeglich erledigt.

greetz
Mike
Mike
Passion is no replacement for reason
  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: RGB -> Bitmap

  Alt 10. Aug 2006, 14:20
ja aber s ist ja auch ein Stream. Wofür ist denn der h-Stream ?
in den S-Stream wird doch der Bitmap Header und dann das Bitmap selbst geschrieben. Wofür dann der andere Stream?
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 JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#8

Re: RGB -> Bitmap

  Alt 10. Aug 2006, 14:23
Zitat von Neutral General:
ja aber s ist ja auch ein Stream. Wofür ist denn der h-Stream ?
in den S-Stream wird doch der Bitmap Header und dann das Bitmap selbst geschrieben. Wofür dann der andere Stream?
Nicht ganz, ich hatte dafuer einen BinaryWriter genommen (s), der in den Stream (h) geschrieben hat

greetz
Mike
Mike
Passion is no replacement for reason
  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
 
#9

Re: RGB -> Bitmap

  Alt 10. Aug 2006, 14:28
Man kann das aber auch nur mit einem Stream machen oder ?
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 JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#10

Re: RGB -> Bitmap

  Alt 10. Aug 2006, 14:53
Zitat von Neutral General:
Man kann das aber auch nur mit einem Stream machen oder ?
Na ja, ein Stream ist fuer diese Loesung gut geeignet. Obs fuer dein Problem noch eine andere, bessere Loesung gibt, weiss ich nicht.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:58 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