#!/usr/bin/env python
# berechne drehwinkel (fuer convert -rotate drehwinkel pix pix.new)
# anhand von zwei Punkten, die am Ende auf einer Lienie liegen sollen
import sys, math
if len(sys.argv) == 5:
try:
Ax = int(sys.argv[1])
Ay = int(sys.argv[2])
Bx = int(sys.argv[3])
except:
sys.exit("error: Ax, Ay, Bx and By must be digits!")
else:
sys.exit("usage: "+sys.argv[0]+" Ax Ay Bx By")
k=Bx-Ax
print (45-(((Ay/math.sqrt((k*k)+(Ay*Ay)))/2*math.pi)*360))/2
also, wenn das Bild mit negativen Winkel gedreht wird, sprich Ax > Bx,
dann kann man die Zahl so uebernehmen:
Falls nicht KLAMMER_AUF: *LACH* KLAMMER_ZU, muesen die X und die Y-Werte
vertauscht werden und das Ergebnis durch zwei geteilt werden ;-)
(Koennte ich ins Script einbauen, hatte aber keinen Bock)
drehwinkel.py 7996 533 461 698
2.54955842874
bc -l
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2.54955842874/2
1.27477921437000000000
quit
convert -rotate 1.274 foo.tif foo1.tif
....alles klar soweit?! ;-)
foo.tif (schief)
foo1.tif (gerade)