Hallo ihr, dieses Semester mache ich einen LabView Kurs. Wir sollen irgendein Projekt verwirklichen, das wird dann benotet. Der Dozent sieht hier gerne Spiele weil es alles andere schonmal gab, hab ich mir sagen lassen. Für mein Projekt muss ich ein Bild rotieren lassen können. Am Besten verwirkliche ich das wohl in einem Pict Ring glaube ich. Dafür bräuchte ich das Bild in 360 Varianten, sprich Dateien -für jeden Winkel eine. Nun will ich nur ungerne 4 Stunden sitzen und das Bild mit Gimp immer um 1° drehen und abspeichern sondern hoffe, dass es dafür ein Tool gibt. Kennt jemand von euch eines vielleicht? Falls jemand eine andere Idee hat ist diese herzlich willkommen :). Gibt es vielleicht eine DLL, die das zur Laufzeit machen könnte? (Man kann ich LabView DLLs einbinden) Am Rande, falls es jemanden interessiert. Meine Idee ist es ein Hovercraft-Spiel aus der Vogelperspektive zu machen. Ich habe sowas schonmal gemacht in C++/OpenGL und das fetzt. Das wird dem Dozenten gefallen und ich weiß schon wie ich an die Sache herangehen muss. Ein Hovercraft kann man ja drehen, es fährt aber trotzdem noch in die gleiche Richtung weiter wenn man nicht beschleunigt. So kann man klasse driften, man muss beim Steuern im Kopf die Trägheit schon im Voraus berechnen um perfekt zu fahren, wenn man zu schnell wird, wird es zu schwierig genau genug zu fahren... usw... -macht Spaß auf jeden Fall. Entweder muss man dann auf einer freien Fläche gegen die Zeit Punkte einsammeln oder evtl. mach in einen RaceTrack in dem man Bestzeiten fahren muss. Nur leider die Geschichte in diesem umständlichen LabView... Naja, muss... Vielen Dank schonmal!
:
Bearbeitet durch User
Imagemagick convert -rotate "1" in.jpg out.jpg
Theor schrieb: > Ein Tool? https://opencv.org/ Danke. Aber das ist ja eine Library. Damit müsste ich das Tool selber schreiben.
Mit ImageMagick (convert -rotate) lässt sich das automatisieren. > Dafür bräuchte ich das Bild in 360 Varianten, sprich Dateien - für > jeden Winkel eine. Das nenn ich eine sehr beschränkte Sichtweise von "jeden Winkel" ;-)
Rufus Τ. F. schrieb: > Imagemagick > > convert -rotate "1" in.jpg out.jpg YESSSS!!! Genau sowas! Und schnell ging das. Das Forum ist echt klasse. Ich freue mich :) Danke dir!
Emil G. schrieb: > Für mein Projekt muss ich ein Bild rotieren lassen können. Am Besten > verwirkliche ich das wohl in einem Pict Ring glaube ich. Dafür bräuchte > ich das Bild in 360 Varianten, sprich Dateien -für jeden Winkel eine. > Nun will ich nur ungerne 4 Stunden sitzen und das Bild mit Gimp immer um > 1° drehen und abspeichern sondern hoffe, dass es dafür ein Tool gibt. "Semester" hört sich nach Student an. Da sollte dir eigentlich klar sein, dass ein Kreis gewisse Symmetrien besitzt, die man bei solchen Aufgabe nutzen kann. Ein Hotkey für 90°-Rotation besitzt fast jedes Programm.
foobar schrieb: >> Dafür bräuchte ich das Bild in 360 Varianten, sprich Dateien - für >> jeden Winkel eine. > > Das nenn ich eine sehr beschränkte Sichtweise von "jeden Winkel" ;-) Das musstest du loswerden ja? ;) Wolfgang schrieb: > "Semester" hört sich nach Student an. > Da sollte dir eigentlich klar sein, dass ein Kreis gewisse Symmetrien > besitzt, die man bei solchen Aufgabe nutzen kann. Ein Hotkey für > 90°-Rotation besitzt fast jedes Programm. Die Rotation soll ja zur Laufzeit geschehen. Und ich brauche 1°-Rotationen. Und mein Programm besitzt noch garnichts weil ich damit noch nicht angefangen habe. Per Hotkey lässt sich das Problem nicht lösen, nein. Wohl aber mit Imagemagick das rufus und foobar genannt haben. Ist erledigt. Danke nochmal.
Emil G. schrieb: > Die Rotation soll ja zur Laufzeit geschehen. Wen Du es eh im Speicher hast weil Du gleich irgendwas damit machen willst (was eigentlich?) kannst Du es doch auch noch schnell passend rotieren, das sollte doch schneller gehen als ein externes Tool zu bemühen und die Festplatte vollzufüllen mit 360 temporären Bildchen für jedes Bild? Und wenn Du eh (wie Du schriebst) OpenGL nutzt für Dein Spiel kannst Du doch die Grafikkarte das Bild in jeden beliebigen Winkel darstellen lassen und musst Dich um gar nichts kümmern!?
:
Bearbeitet durch User
Bernd K. schrieb: > Emil G. schrieb: >> Die Rotation soll ja zur Laufzeit geschehen. > > Wen Du es eh im Speicher hast weil Du gleich irgendwas damit machen > willst (was eigentlich?) kannst Du es doch auch noch schnell passend > rotieren, das sollte doch schneller gehen als ein externes Tool zu > bemühen und die Festplatte vollzufüllen mit 360 temporären Bildchen für > jedes Bild? > > Und wenn Du eh (wie Du schriebst) OpenGL nutzt für Dein Spiel kannst Du > doch die Grafikkarte das Bild in jeden beliebigen Winkel darstellen > lassen und musst Dich um gar nichts kümmern!? Nein nein. Du hast mich falsch verstanden. Weil ich so ein Spiel schoneinmal gemacht habe in C++ und OpenGL weiß ich schon wie ich die das grob realisiere. Dieses Mal mus ich es aber in LabView machen. Ich habe rumgesucht aber nichts gefunden, wie man da Bilder rotiert. LabView ist keine Programmiersprache. Eher ein gewaltiger Point-And-Click Baukasten. Da ist nix mit OpenGL... Das enzige was vielleicht gehen würde, weil man in LV DLLs einbinden kann, die man ja selber in C/C++ schreiben kann, eine Grafikengine in eine DLL einzubinden, dort hineingegebene Bilder zu rotieren und wieder zurück an das LabView-Programm zu übergeben. Aber wie und ob man da Bilder hin und her übergeben kann -puh, keine Ahnung. Gewöhnliche Datentypen sind einfach, aber Bildformate.... Falls es möglich wäre, dann wäre es für mich zumindest ziemlich heftig, da bin ich mir ziemlich sicher. Den Dozenten würde es beeindrucken aber eine 1 gibt es schon für viel weniger und ich habe nicht vor ein LV-Profi zu werden.
Emil G. schrieb: > . Dieses Mal mus ich es aber in LabView machen. Ich > habe rumgesucht aber nichts gefunden, wie man da Bilder rotiert. http://www.ni.com/example/26943/en/ Ist aber lahm, weil das auf der GPU erheblich effizienter wäre als für die CPU.
Zur Vollständigkeit bzw. für die SuFu... Weil ich mich mit Batch-Skripten nicht auskenne musste ich grade ganz schön rumprobieren, aber jetzt hab ichs. So gehts: 1. Imagemagick installieren http://www.chip.de/downloads/ImageMagick_42777524.html 2. Eine .bat-Datei erstellen und folgendes hinein kopieren:
1 | SETLOCAL ENABLEDELAYEDEXPANSION |
2 | for /l %%i in (0,1,359) do ( |
3 | set n=%%i |
4 | magick convert -rotate !n! D:\temp\bild.png D:\temp\bild_!n!.png |
5 | )
|
6 | ENDLOCAL
|
3. (0,1,359) bedeutet von 0 bis 359 in 1er-Schritten. Das und die Pfade entsprechend anpassen 4. Die .bat Datei ausführen :)
:
Bearbeitet durch User
Endlich mal jemand, der einen thread auch zu einem Abschluss bringt und eine Lösung bereitstellt für andere, die suchen. Schnell zumachen, damit nicht noch Mist geschrieben werden kann!
Mogler schrieb: > Schnell zumachen, damit nicht noch Mist geschrieben werden kann! Nicht so schnell. Nur weil eine Windows-only lösung gepostet wurde ist noch lange nicht alles gesagt. Hier noch eine Lösung für alle anderen (relevanten) Systeme:
1 | #!/bin/bash
|
2 | |
3 | for i in $(seq 1 359) |
4 | do
|
5 | convert -rotate $i /tmp/bild.png /tmp/bild_$i.png & |
6 | done
|
Schau doch mal Prospeed.dll an: https://www.paules-pc-forum.de/forum/thread/111794-prospeed-dll-version-3-0/ Ist in Assembler geschrieben. Gruss Chregu
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.