![]() |
Re: 18bit Bilder erstellen??
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
Re: 18bit Bilder erstellen??
Zitat:
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; |
Re: 18bit Bilder erstellen??
Hey, danke, wir kommen der Sache ja schon näher!!
Nur leider bekomme ich ein komplett schwarzes Bild wenn ich deinen code benutze!! |
Re: 18bit Bilder erstellen??
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Re: 18bit Bilder erstellen??
Hast du eigentlich irgendwie die Beschreibung aus der du das mit den 18 Bit hast?
|
Re: 18bit Bilder erstellen??
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Re: 18bit Bilder erstellen??
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?!?
|
Re: 18bit Bilder erstellen??
Zitat:
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... |
Re: 18bit Bilder erstellen??
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?!?
|
Re: 18bit Bilder erstellen??
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz