Delphi-Version: 7
Anzahl Glyphs eines Bitmaps rausfinden
Hallo,
gibt es die Möglichkeit rauszufinden, wieviele Glyphs ein Bitmap beinhaltet? In der Unit "Buttons" in der auch ein BitBtn vorhanden ist, hab ich folgenden Code gefunden:
Delphi-Quellcode:
Dort findet man die Berechnung von Glyph:
procedure TButtonGlyph.SetGlyph(Value: TBitmap);
var Glyphs: Integer; begin Invalidate; FOriginal.Assign(Value); if (Value <> nil) and (Value.Height > 0) then begin FTransparentColor := Value.TransparentColor; if Value.Width mod Value.Height = 0 then begin Glyphs := Value.Width div Value.Height; if Glyphs > 4 then Glyphs := 1; SetNumGlyphs(Glyphs); end; end; end;
Delphi-Quellcode:
Aber das kommt mir jetzt schon etwas zu einfach vor :-)
Glyphs := Value.Width div Value.Height;
|
AW: Anzahl Glyphs eines Bitmaps rausfinden
Stimmt schon, sofern gilt, dass die Glyphs quadratisch sind :wink:
|
AW: Anzahl Glyphs eines Bitmaps rausfinden
Zitat:
Ansonsten gibt es keine im Bitmap vorhanden Infos die sowas liefern würde. Borland hat damals einfach festgelegt das so zu machen um den GDI-Ressourcenverbrauch zu minimieren. |
AW: Anzahl Glyphs eines Bitmaps rausfinden
Zitat:
|
AW: Anzahl Glyphs eines Bitmaps rausfinden
Zitat:
|
AW: Anzahl Glyphs eines Bitmaps rausfinden
Ich hab das Ganze jetzt mal in eine Function gepackt:
Delphi-Quellcode:
Was aber dem Code aus der Unit Buttons entspricht.
function Count_Glyphs(Bitmap: TBitmap): Integer;
begin //Result definieren Result := 1; //prüfen ob das Verhältnis zwischen Breite und Höhe stimmt If Bitmap.Width mod Bitmap.Height = 0 then begin //Anzahl Glyphs errechnen Result := Bitmap.Width div Bitmap.Height; //prüfen ob es mehr als 4 Glyphs gibt If Result > 4 then Result := 1; end; end; Hab beim ersten Mal das "mod" übersehen. Das hilft natürlich weiter... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 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