AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi 18bit Bilder erstellen??

18bit Bilder erstellen??

Offene Frage von "Simon6785"
Ein Thema von Simon6785 · begonnen am 15. Nov 2005 · letzter Beitrag vom 7. Dez 2005
Antwort Antwort
Seite 2 von 6     12 34     Letzte » 
Simon6785

Registriert seit: 14. Nov 2005
Ort: Lippetal
37 Beiträge
 
Delphi 2005 Architect
 
#11

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 17:10
Hm, also da steht wirklich was von 18bit bildern, aber irgendwie auch nicht wirklich...
Ja, ich weiß ganz sicher das ich 18bit bilder brauche...

Hier mal ein Bild aus der Firmware, das ist so ein 18bit bild, ich weiß nicht ob ihr damit was anfangen könnt?!? Also es ist 116160Bytes groß und 176x220px.
Angehängte Dateien
Dateityp: zip pwroff04_141.zip (14,0 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#12

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 18:34
Zitat von Simon6785:
Also es ist 116160Bytes groß und 176x220px.
Das wären genau 3 Byte pro Pixel (kein Header).
Test-Code könnte so aussehen:
Delphi-Quellcode:
function Bitmap18ToHandle(Source: Pointer; Width, Heigth: Integer): HBITMAP;
type
  PPixel18 = ^TPixel18;
  TPixel18 = record
    Data: array [0..2] of Byte; // Three bytes?
  end;
var
  DevContext: HDC;
  BitmapInfo: TBitmapInfo;
  BitmapBits: PRGBTriple;
  x, y: Integer;
  SourceBits: PPixel18;
begin
  Result := 0;
  DevContext := CreateCompatibleDC(0);
  if DevContext = 0 then
    Exit;
  try
    ZeroMemory(@BitmapInfo, SizeOf(TBitmapInfo));
    with BitmapInfo.bmiHeader do
    begin
      biSize := SizeOf(TBitmapInfoHeader);
      biWidth := Width;
      biHeight := -Heigth; // top-down
      biPlanes := 1;
      biBitCount := 24;
      biCompression := BI_RGB;
    end;
    Result := CreateDIBSection(0, BitmapInfo, DIB_RGB_COLORS,
      Pointer(BitmapBits), 0, 0);
    if Result = 0 then
      Exit;
    try
      SourceBits := Source;
      for y := 1 to Heigth do
      begin
        for x := 1 to Width do
        begin
          //FIXME: Pixel conversion...?
          // ______bb bbbbgggg ggrrrrrr
          // rrrrrrrr gggggggg bbbbbbbb
          BitmapBits.rgbtRed :=
            ((SourceBits.Data[0] and $3F) );
          BitmapBits.rgbtGreen :=
            ((SourceBits.Data[0] ) shr 6) or
            ((SourceBits.Data[1] and $0F) shl 2);
          BitmapBits.rgbtBlue :=
            ((SourceBits.Data[1] ) shr 4) or
            ((SourceBits.Data[2] and $03) shl 4);
          Inc(BitmapBits);
          Inc(SourceBits);
        end;
        // Scanline alignment on DWORD boundaries
        BitmapBits := Pointer((Cardinal(BitmapBits) + 3) and Cardinal(not 3));
      end;
    except
      DeleteObject(Result);
      Result := 0;
    end;
  finally
    DeleteDC(DevContext);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Stream: TMemoryStream;
begin
  Stream := TMemoryStream.Create();
  try
    Stream.LoadFromFile('pwroff04.ani');
    Image1.Picture.Bitmap.Handle := Bitmap18ToHandle(Stream.Memory, 176, 220);
  finally
    Stream.Free();
  end;
end;
  Mit Zitat antworten Zitat
Simon6785

Registriert seit: 14. Nov 2005
Ort: Lippetal
37 Beiträge
 
Delphi 2005 Architect
 
#13

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 18:59
Hey, danke, wir kommen der Sache ja schon näher!!

Nur leider bekomme ich ein komplett schwarzes Bild wenn ich deinen code benutze!!
  Mit Zitat antworten Zitat
Der_Unwissende

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

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 19:05
Hi,
wie soll denn dein Originalbild aussehen? Hab hier ein Samsung-bla, irgendwas mit Feuerwehr und das ganze mit einem gelben Hintergrund, aber mich würde das eigentliche original interessieren.

Gruß Der Unwissende
Angehängte Grafiken
Dateityp: bmp test_978.bmp (113,5 KB, 67x aufgerufen)
  Mit Zitat antworten Zitat
Der_Unwissende

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

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 19:06
Hast du eigentlich irgendwie die Beschreibung aus der du das mit den 18 Bit hast?
  Mit Zitat antworten Zitat
Simon6785

Registriert seit: 14. Nov 2005
Ort: Lippetal
37 Beiträge
 
Delphi 2005 Architect
 
#16

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 19:34
das Bild was du angehängt hast ist bei mir auch schwarz?!?!!!

Ja, das ist genau richtig, ich hänge dir mal das bild was ich eben geschickt hab als 24bit bitmap an, aber das was du gesagt hast stimmt schonmal!

Ja, also das ist GANZ sicher 18bit, so ist das Bild in Resman, dem schon existierenden programm für samsung-firmwares beschrieben:

<img ofs="0x00d98e58" title="0x00d98e58" width="176" height="220" bpp="18">

und im programm steht auch immer wieder 18bit
Angehängte Grafiken
Dateityp: bmp samsung_logo_114.bmp (113,5 KB, 47x aufgerufen)
  Mit Zitat antworten Zitat
Simon6785

Registriert seit: 14. Nov 2005
Ort: Lippetal
37 Beiträge
 
Delphi 2005 Architect
 
#17

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 19:37
wenn ich bei deinem bild den kontast ganbz hoch drehe bekomme ich ein spiegelverkehrtes, auf dem kopf stehendes bild wo der hintergrund türkis ist und alle anderen farben auch nicht stimmen?!?
  Mit Zitat antworten Zitat
ultrasombrero

Registriert seit: 11. Sep 2005
23 Beiträge
 
#18

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 21:08
Zitat von Simon6785:
das Bild was du angehängt hast ist bei mir auch schwarz?!?!!!
Lol. Wie dunkel ist dein Bildschirm denn eingestellt???

Das erinnert mich an Anrufe bei der PC-Hotline, wo felsenfest behauptet wird, der PC sei kaputt, und wo sich dann irgendwann rausstellt, dass er nur nicht ans Stromnetz angeschlossen war...
  Mit Zitat antworten Zitat
Simon6785

Registriert seit: 14. Nov 2005
Ort: Lippetal
37 Beiträge
 
Delphi 2005 Architect
 
#19

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 21:20
hm, also bein bildschirm ist wirklich etwas dunkel, aber das bild ist pechschwarz bei mir... naja,un d halt das die farben falsch sind , es auf dem koüf steht und seitenverkehrt ist, aber sonst kommen wir der Sachen schon sehr sehr nahe!! ich brauch das bild jetzt nur noch richtig, wo ist denn der fehler?!?
  Mit Zitat antworten Zitat
Der_Unwissende

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

Re: 18bit Bilder erstellen??

  Alt 16. Nov 2005, 21:42
Ja, wo der Fehler ist, ist jetzt die Interessante Frage. Muss wohl nochmal genauer schauen, was man mit den 18 Bit anstellen muss, um es richtig hinzubekommen. Dass mit dem Spiegelverkehrt liegt eigentlich nur an der Logik, wie man die Bits anordnet. Selbes gilt grob für die Farben, kannst halt RGB, RBG, BRG, ... Anordnen. Aber selbst mit Farbtauschen komm ich nicht wirklich auf das erwartete Bild. Es gibt natürlich auch Bilder, die ihre Farben in RRRRRRRRRR....GGGGGGGGGG.....BBBBBBBB.... oder so anordnen. Und es gibt natürlich noch feste Farbpaletten, wobei du dann nur einen Index auf einen Eintrag hast. Und ohne die Tabelle der Farben kannst du dann nichts machen. Die sind in dem File definitiv nicht vorhanden.
Hab nicht mehr gemacht als einen Standard-Bitmap header an diese Daten anzufügen. Na ja, hab die Farbinfos auch noch einmal 2 Bit geschifftet (macht die Farben aber nur dunkler, logischer Weise, nicht richtiger).

Werde mal nochmal schauen, wenn ich Zeit hab,
Gruß Der Unwissende
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:31 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