![]() |
Aspect ratio berechnen
Hallo,
wie kann ich aus 2 zahlen das Aspect ratio berechnen, also zb bei videos oder bildern. zb bei 720 mal 576 wie komm ich da dann auch 4:3 oder 1920 mal 1080 = 16 : 9 usw. Hat da jemand etwas fertiges? Oder hat jemand eine Idee? gruß tom |
AW: Aspect ratio berechnen
Sollte doch über den GGT gehen.
-- EDIT: Jup, habs gerade mal schnell mit Excel getestet. Einfach den GGT beider Zahlen ermitteln, dann dadurch teilen und man hat das passende Ergebnis. |
AW: Aspect ratio berechnen
hi ok und wie hast du das dann da gemacht? Ich steh graud aufm schlauch glaub... sorry
ggt = größter gemeinsamer teiler oder ? |
AW: Aspect ratio berechnen
Äh?! Jup!
Delphi-Quellcode:
Die Methode GetGGT musst dir halt irgendwo im Netz suchen :)
// Hier mal eine Version für D2010 aufwärts
TAspectRatio = record X, Y: Integer; procedure CalcRatio(const XRes, YRes: Integer); end; procedure TAspectRatio.CalcRatio(const XRes, YRes: Integer); var GGT: Integer; begin GGT := GetGGT(XRes, YRes); X := XRes div GGT; Y := YRes div GGT; end; // Oder das ganze für D2009 und älter TAspectRatio = record X, Y: Integer; end; function GetAspectRatio(const XRes, YRes: Integer): TAspectRatio; var GGT: Integer; begin GGT := GetGGT(XRes, YRes); Result.X := XRes div GGT; Result.Y := YRes div GGT; end; |
AW: Aspect ratio berechnen
Hi,
wow cool Thanks, bin jetzt auch grad aufm weg dazu gewesen :-) aber geil das ist ja noch besser so DANKE: hier is die ggt berechnung auch bei delphi praxis ![]() Danke dir tausendfach, habs grad erst echt nich gecheckt wie ichs machen soll, manchmal steht man sowas von aufm schlauch *g* sorry |
AW: Aspect ratio berechnen
Zitat:
|
AW: Aspect ratio berechnen
Zitat:
Hier noch eine Version für den GGT:
Delphi-Quellcode:
// http://de.wikipedia.org/wiki/Steinscher_Algorithmus
function GGT(NumberA, NumberB: Int64): Int64; var K, T : Int64; begin if (NumberA = 0) then Exit(NumberB); K := 0; while (Even(NumberA) and Even(NumberB)) do begin NumberA := NumberA div 2; NumberB := NumberB div 2; Inc(K); end; if (Odd(NumberA)) then T := -NumberB else T := NumberA; while (T <> 0) do begin while (Even(T)) do T := T div 2; if (T > 0) then NumberA := T else NumberB := -T; T := NumberA - NumberB; end; if (K = 0) then Result := NumberA else Result := NumberA * (2 shl (K - 1)); end; |
AW: Aspect ratio berechnen
Und noch was am Rande: Das Seitenverhältnis (=aspect ratio in dt.) wird nicht zwangsweise in X:Y angegeben. Oft langt schon die Angabe "Breite dividiert durch Höhe" als reelle Zahl, vor allem zum Rechnen in einem Programm. X:Y nimmt man nur deswegen gerne, weil die gängigen Formate in periodische Zahlen münden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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