AGB  ·  Datenschutz  ·  Impressum  







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

Anzahl Glyphs eines Bitmaps rausfinden

Ein Thema von Helmi · begonnen am 15. Apr 2011 · letzter Beitrag vom 15. Apr 2011
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

Anzahl Glyphs eines Bitmaps rausfinden

  Alt 15. Apr 2011, 15:02
Delphi-Version: 7
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:
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;
Dort findet man die Berechnung von Glyph: Glyphs := Value.Width div Value.Height; Aber das kommt mir jetzt schon etwas zu einfach vor
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Anzahl Glyphs eines Bitmaps rausfinden

  Alt 15. Apr 2011, 15:03
Stimmt schon, sofern gilt, dass die Glyphs quadratisch sind
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Anzahl Glyphs eines Bitmaps rausfinden

  Alt 15. Apr 2011, 15:05
Dort findet man die Berechnung von Glyph: Glyphs := Value.Width div Value.Height; Aber das kommt mir jetzt schon etwas zu einfach vor
Dies ist korrekt wenn man Definiert das für ein Glyph Breite = Höhe gilt.
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Anzahl Glyphs eines Bitmaps rausfinden

  Alt 15. Apr 2011, 15:05
Stimmt schon, sofern gilt, dass die Glyphs quadratisch sind
Und was mach ich jetzt wenn ich ein Bitmap habe dass die gleichen/ähnlichen Ausmaße hat, aber keine Glyph beinhaltet?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Anzahl Glyphs eines Bitmaps rausfinden

  Alt 15. Apr 2011, 15:28
Und was mach ich jetzt wenn ich ein Bitmap habe dass die gleichen/ähnlichen Ausmaße hat, aber keine Glyph beinhaltet?
Ähnlich ist egal (Value.Width mod Value.Height = 0) und bei gleich einfach wieder das Property Glyphs wieder zurücksetzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Anzahl Glyphs eines Bitmaps rausfinden

  Alt 15. Apr 2011, 15:31
Ich hab das Ganze jetzt mal in eine Function gepackt:
Delphi-Quellcode:
  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;
Was aber dem Code aus der Unit Buttons entspricht.
Hab beim ersten Mal das "mod" übersehen. Das hilft natürlich weiter...
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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 09: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