2016-10-20 1 views
1

Ich möchte .eps Datei mit ImageMagick oder GhostScript-Befehlszeile drehen. Ich habe erfolgreich .tif/.tiff Datei gedreht, aber .eps Datei nicht zu drehen..EPS Datei Rotation über ImageMagick oder GhostScript Befehlszeile

Was habe ich ausprobiert?

Mit ImagicMagick

Ich habe folgende Befehle versucht.

/usr/bin/convert /usr/local/1476864737b31068.eps -rotate 90 /usr/local/1476864737b31068.eps 

Ergebnis: -

Ganz eps-Datei schwarz werden, und es gibt keine Inhalte in der Datei. Dateigröße erhöht auch 3,3MB von 1,3MB

Ghost Mit

Ich habe folgende Befehle versucht.

gs -c '612 0 translate 90 rotate' -f /usr/local/1476864737b31068.eps 
gs -dEPSCrop -c "<</Orientation 1>> setpagedevice" -f input.eps -c quit 
gs -dEPSCrop -sOutputFile=/usr/local/1476864737b31068.eps -c "<</Orientation 1>> setpagedevice" -f /usr/local/1476864737b31068.eps -c quit 
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=eps2write -sOutputFile=/usr/local/1476864737b31068.eps -c "<</Orientation 3>> setpagedevice" -f /usr/local/1476864737b31068.eps 

Ergebnis: -

Kein Befehl tut Rotation und mit dem letzten Befehl, ganzen eps-Datei weiß worden, aber es in der Datei wird die Feststellung. Dateigröße auch auf 166KB reduziert von 1,3MB

Sample .EPS FILE

Hinweis: Ich versuche, Quelle (.eps-Datei) zu drehen, ich brauche keine Rotation auf Ausgabedatei wie JPG, PNG usw. Datei.

+0

Es wird wahrscheinlich nicht sein möglich, Ihnen zu helfen, ohne ein Beispiel-EPS-Programm zu sehen und die Version von Ghostscript zu kennen, die Sie verwenden. Der einfachste Weg, dies zu umgehen, besteht darin, die BoundingBox des EPS zu verwenden, um die Medien um den erforderlichen Betrag zu rotieren, und dann Dreh- und Übersetzungsoperationen hinzuzufügen, um die eigentliche Manipulation durchzuführen. Ausgabe an das Gerät eps2write, um ein neues EPS-Programm zu erhalten. EPS soll eigentlich in ein umschließendes PostScirpt-Programm eingefügt werden, so dass dies trivial sein sollte. – KenS

+0

@KenS können Sie mir sagen, wie kann ich sehen, welche Version von GS installiert ist? – Hassaan

+0

Ich benutze Ubuntu 16.04 – Hassaan

Antwort

1

Sie haben also nicht gesagt, in welcher Richtung Sie die Datei gedreht haben wollten, noch wie viel.

Diese Befehlszeile:

gs -sDEVICE=eps2write -sOutputFile=out.eps -c "<</PageSize [569 944]>>setpagedevice 569 0 translate 90 rotate" -f 1476864737b31068.eps 

Erzeugt eine neue EPS-Datei, die um 90 Grad gegen den Uhrzeigersinn in Bezug auf den ursprünglichen gedreht wird. Offensichtlich müssen Sie die Operanden translate und rotate ändern, wenn Sie um unterschiedliche Beträge rotieren möchten.

Natürlich sollen EPS-Dateien in einem umschließenden PostScript-Programm enthalten sein, so dass die Skalierung und Drehung dort normalerweise ausgeführt wird.

Schlussnote; Das ist nicht einfach "rotieren", sondern der Code zwischen -c und -f. Was dies tut, ist das Interpretieren der EPS zu Grafikgrundelementen, das Übergeben dieser Grundelemente an das Gerät und dann das Assemblieren einer neuen Ausgabedatei, die eine geeignete Darstellung dieser Grundelemente enthält.

So sieht der Inhalt der resultierenden EPS-Datei nichts wie der Inhalt der ursprünglichen EPS-Datei.

Übrigens möchten Sie vielleicht einen anderen Dateifreigabedienst in Betracht ziehen.Dieser hat versucht, eine Browser-Erweiterung (Video-Download-Helfer) herunterzuladen, bevor ich die Datei herunterladen konnte, und als ich mich weigerte, mich zu einer anderen (Werbe-) Website umzuleiten, die versucht hat, Malware zu installieren ....

+0

Ich habe Update-Datei-Host, jetzt versuchen Sie bitte, diese Datei herunterzuladen. – Hassaan

+0

Mit Ihrem Befehl ist das Ergebnis immer noch gleich, soll ich irgendein zusätzliches Modul oder etwas installieren? – Hassaan

+0

Eine weitere Sache, ich führe diesen Befehl über PHP, aber wenn ich Ihren Befehl im Terminal ausführen, bitten Sie mich, die EINGABETASTE drücken, um fortzufahren. – Hassaan

Verwandte Themen