AGB  ·  Datenschutz  ·  Impressum  







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

Aspect ratio berechnen

Ein Thema von Cylence · begonnen am 6. Jul 2011 · letzter Beitrag vom 6. Jul 2011
Antwort Antwort
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#1

Aspect ratio berechnen

  Alt 6. Jul 2011, 13:16
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
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 13:17
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 13:22
hi ok und wie hast du das dann da gemacht? Ich steh graud aufm schlauch glaub... sorry
ggt = größter gemeinsamer teiler oder ?
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 13:32
Äh?! Jup!
Delphi-Quellcode:
// 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;
Die Methode GetGGT musst dir halt irgendwo im Netz suchen
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 13:36
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

http://www.delphipraxis.net/36244-gg...gorithmus.html

Danke dir tausendfach, habs grad erst echt nich gecheckt wie ichs machen soll, manchmal steht man sowas von aufm schlauch *g* sorry
Tom
Just DO it
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#6

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 13:57
Delphi-Quellcode:
// Hier mal eine Version für D2010 aufwärts
TAspectRatio = record
  X, Y: Integer;
  procedure CalcRatio(const XRes, YRes: Integer);
end;
nur am Rande: das geht so ab Delphi 2007.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 16:04
Delphi-Quellcode:
// Hier mal eine Version für D2010 aufwärts
TAspectRatio = record
  X, Y: Integer;
  procedure CalcRatio(const XRes, YRes: Integer);
end;
nur am Rande: das geht so ab Delphi 2007.
Okay, lasse mich gerne berichtigen

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;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: Aspect ratio berechnen

  Alt 6. Jul 2011, 20:21
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  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 01:05 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