Ich brauche deine Hilfe. Ich erkläre meine Situation: Ich verwende fabric.js-Bibliothek, um Formen, Text, etc. in meiner Anwendung zu platzieren. Meine Leinwandgröße hat 1000x1000 Pixel (ca. 26,45x26,45 Zentimeter). Ich habe ein Bild-Upload-Skript nur zum Hochladen von Bildern in hoher Qualität, wie 300 dpi.Was ist die beste Vorgehensweise, um Canvas mit hochwertigen Bildern zu exportieren?
Grundsätzlich was ich tue, ist folgendes: - Zeichnen Sie die Leinwand (Hochladen von Bildern, Text, etc ...); - Größe der Leinwand multiplizieren mit Skalierungsfaktor, um am Ende ein Bild mit 300 dpi zu haben; - Speichern Sie die Leinwand im PNG-Format; - mit Hilfe von php/ajax und Imagick, legen Sie die Leinwand mit 300 dpi Qualität, Speichern im JPG-Format.
Das Problem ist: Wenn ich die Leinwand speichere, wird die Qualität der hochgeladenen Bilder bestimmt, weil ich die Größe der Leinwand 72 dpi (in dem Moment, dass ich in PNG speichern).
Ich denke, eine mögliche Lösung ist: beim Hochladen der Bilder, speichern Sie die Position in einem Array mit x und y Position und Größe bis zum Ende des gesamten Prozesses, ersetzen Sie das Bild in JPG. Wenn dies der beste Weg ist, ist es möglich, es mit Imagick-Bibliothek oder in PHP zu machen?
Ich würde gerne Ihre Meinung dazu wissen.
Vielen Dank.
Ein anderer Ansatz ist hier http://stackoverflow.com/questions/28778396/how-to-export-draw-canvas-fabricjs-tojson-in-php-using-imagick-in-high-qua – AZinkey
@ K3N : Ich folgte Ihrem Vorschlag, aber ich bin auf ein Problem fest, die Texte, die platziert werden, sind sehr klein.Klicken Sie auf die Geige http://jsfiddle.net/Q3TMA/1042/ – Abhinav
@Abhinav die Schriftgröße muss skaliert werden im Voraus vor gezeichnet. Sie können dafür scale() verwenden oder direkt mit der Schrifthöhe versuchen. Letzteres ist nicht immer linear aufgrund der Art der Schrift, aber Sie sollten in der Lage sein, sich zu nähern. – K3N