AGB  ·  Datenschutz  ·  Impressum  







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

Korrekte biSizeImage?

Ein Thema von EWeiss · begonnen am 20. Jun 2019 · letzter Beitrag vom 21. Jun 2019
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Korrekte biSizeImage?

  Alt 20. Jun 2019, 08:25
Habe wieder mal ein kleines Problem.

Vorher habe ich die Größe auf dieser weise übergeben.
Width * Height * 3

Dann habe ich aber Fehler im Bitmap.
Habe jetzt eine Lösung im Net gefunden welche die korrekt Größe liefern sollte.
Tut sie aber nicht Bild ist immer noch Fehlerhaft.

Wie ist denn nun die korrekte Formel um biSizeImage auf die korrekte Größe zu setzen.?
Das war die Lösung aus dem Net.

Delphi-Quellcode:
function ByteAlignOnWord(BitDepth: Byte; Width: Integer): DWord;
begin

  Result := (((Width * BitDepth) + $1F) And Not $1F) div $8;
end;
Delphi-Quellcode:
  bi.bmiHeader.biSizeImage := DWord(Abs(bi.bmiHeader.biHeight)) *
    ByteAlignOnWord(Byte(bi.bmiHeader.biBitCount), bi.bmiHeader.biWidth);
EDIT:
Den schrägen strich habe ich behoben , es fehlte bei Width das - 1
Für das anderen Problem habe ich noch einen Shot hochgeladen.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:58 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Korrekte biSizeImage?

  Alt 21. Jun 2019, 06:43
Ich habe es jetzt erstmal so behoben das ich mein Fenster einfach 2 Pixel runterschiebe dann sieht man den Fehler nicht.
Schade das da niemand bescheid weis.

gruss

Geändert von EWeiss (21. Jun 2019 um 06:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Korrekte biSizeImage?

  Alt 21. Jun 2019, 07:10
Schade das da niemand bescheid weis.
Denke daran, dass gestern ein Feiertag in einigen Bundesländern war. Dementsprechend ist heute bei vielen ein Brückentag.
Erfahrungsgemäß ist das Forum dann nicht so gut besucht. Und jetzt kommt dann auch noch das Wochenende.

Warte einfach noch ein wenig ab
Peter
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Korrekte biSizeImage?

  Alt 21. Jun 2019, 07:11
Schade das da niemand bescheid weis.
Denke daran, dass gestern ein Feiertag in einigen Bundesländern war. Dementsprechend ist heute bei vielen ein Brückentag.
Erfahrungsgemäß ist das Forum dann nicht so gut besucht. Und jetzt kommt dann auch noch das Wochenende.

Warte einfach noch ein wenig ab
Sorry ja Kein Problem.

gruss
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Korrekte biSizeImage?

  Alt 21. Jun 2019, 09:49
Hallo,
darauf bezieht sich ja dein Code
https://docs.microsoft.com/en-us/win...oring-an-image

Darüber steht auch noch ein Kommentar zur RLE-Kompression,
aber weiter kann ich dir leider auch nicht helfen.

Wobei
((pbmi->bmiHeader.biWidth * cClrBits +31) & ~31) /8
* pbmi->bmiHeader.biHeight;

Es wird nicht mit div dividiert, sondern der Compiler rundet (Abs?) erst zum Schluss.
Heiko

Geändert von hoika (21. Jun 2019 um 09:51 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Korrekte biSizeImage?

  Alt 21. Jun 2019, 16:26
Die Basis ist ein HWND (Container) davon das DC zum Zeichnen.
Der Buffer um das Image zu faden ist ein HBitmap egal ob ich direkt ein 32BitHBitmap DC erstelle oder über eine TBitmap gehe und mir davon das DC hole
in beiden fällen fehlen mir da unten die paar Pixels.
Deshalb die frage was da falsch läuft.. kann sich ja nur um die Berechnung der Bitmap Größe handeln.

Hmmm.. nun gut scheint ja so das es Code mäßig deinem Link entspricht.
Die Frage bleibt wohl offen woher der Fehler kommt.

Danke.

gruss

Geändert von EWeiss (21. Jun 2019 um 16:40 Uhr)
  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 17:29 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