Umrechnung von Pixeln in anderer Auflösung
Hallo Leute.
Ich habe mich noch nie großartig mit Bildbearbeitung usw beschäftigt. Jetzt bräuchte ich diesbezüglich mal Hilfe.
Ich habe eine Angabe von X und Y Koordinaten für die Auflösung: 640x480
Jetzt müsste ich aber eine Umrechnung auf eine beliebige Auflösung durchführen.
Also ich müsste die 2 Koordinaten zu umrechnen, dass ich weiß wo sie bei z.B. 1280x720 liegen.
Es sind recht viele Koordinaten und viele Verschiedene Auflösungen, daher kann ich nicht einfach probieren.
Ich finde auch bei google keine Formel zur Umrechnung also wäre ich euch sehr verbunden ;)
mfg
nom
AW: Umrechnung von Pixeln in anderer Auflösung
Schreib dir einfach eine Funktion, die vier Parameter annimmt, den x-Faktor, y-Faktor, neueBreite, neueHöhe . Der Faktor errechnet sich folgendermaßen:
xFaktor = xKoordinate / alteBildbreite
yFaktor = yKoordinate / alteBildhöhe
Der Rückgabewert der Funktion liefert die neuen Koordinaten. Diese kannst du mit:
neueBreite * xFaktor
bzw.
neueHhöhe * yFaktor
, errechnen.
AW: Umrechnung von Pixeln in anderer Auflösung
Haha FUCK IT :D
Das war die einzige Methode die ich nicht probiert habe xD
Habe NeuX/AltX und und und aber da kam nix bei raus :D
Dickes Danke schonmal :)
Edit://
Ich komme da auch nen Faktor von: 0,4
Wenn ich nun 1440*0,4 und 900*0,4 rechne komme ich auf die Koordinaten: 576, 360
Die richtigen Koordinaten liegen aber im Bereich: ~730, ~498 (Mit Paint mal nachgeschaut)
AW: Umrechnung von Pixeln in anderer Auflösung
Dann misst du falsch ab in Paint. Ich habe mal zum Beweis in Photoshop ein Foto einer Landschaft genommen und einen roten, kleinen Punkt eingesetzt.
Bildmaße: 1024x768
Punktkoordinaten: 860; 167
Danach habe ich die Größe des Bildes proportional verändert. Die Ergebnisse:
Bildmaße: 800x600
Punktkoordinaten: 670; 130
Bildmaße: 600x450
Punktkoordinaten: 504; 98
(Punktkoordinaten weichen aufgrund von Messungenauigkeiten leicht von den echten Ergebnissen ab)
Auf dieselben Werte kommt man auch mit meiner Formel in der Theorie.
AW: Umrechnung von Pixeln in anderer Auflösung
Dann wird das Programm wahrscheinlich noch etwas zerren usw aber danke schon mal :)
AW: Umrechnung von Pixeln in anderer Auflösung
Ich würde das ganz einfach mit der Prozentrechnung machen.
Mein Pseudocode (möglichst VB-ähnlich):
Code:
Function resize(orgX, orgY, orgWidth, orgHeight, newWidth, newHeight)
Dim ret(0 to 2) As Integer
ret(0) = orgX / orgWidth * newWidth
ret(1) = orgY / orgHeight * newHeight
return ret
End Function
Ich beherrsche kein VisuaBasic und hoffe daher, dass ich es einigermaßne leserlich getroffen habe. Rückgabewert ist übrigens ein Array mit der X- und Y-Koordinate für die nue Auflösung. Simple Grundmathematik ;). Ich hoffe das willst du.