it-swarm.com.de

Wie können Benutzer beim Hochladen ein Bild drehen?

Auf meiner Website können Benutzer Bilder einzeln als Knoten des Inhaltstyps Bild hochladen. Der Inhaltstyp Bild verwendet das Kernbildfeld (D7).

Einige meiner Benutzer haben Bilder, die so aufgenommen wurden, dass sie um 90 oder 180 Grad gedreht werden müssen. Diese Benutzer haben keinen einfachen Zugriff auf Bildbearbeitungssoftware, daher möchte ich Benutzern erlauben, das Bild auf dem Bildschirm des Bearbeitungsknotens zu drehen.

Nachdem das Bild gespeichert wurde, möchte ich einen Bildstil anwenden (der das Skalieren und Zuschneiden erzwingt usw.). Außerdem verwende ich das Modul Manuelles Zuschneiden , damit Benutzer das Bild bei Bedarf zuschneiden können.

Gibt es dafür ein Modul oder eine einfache Möglichkeit, dies im Code zu tun? (Ich bin kein Entwickler.)

Ich hätte lieber eine Lösung, bei der ich Benutzern eine Schaltfläche zum Drehen des Bildes präsentieren kann. Ich möchte ihnen keinen vollständigen Bildeditor geben.

Wenn eine solche Lösung nicht möglich ist, gibt es eine einfache Möglichkeit, die Bilder am hinteren Ende zu drehen (für Administratoren)? Ich mache es gerne selbst, da ich sowieso alle Bilder überprüfen muss.

5
Patrick Kenny

Ich habe einen Weg gefunden, das Problem zu beheben. Ich habe das Modul Image EXIF Autorotate in Verbindung mit Imagecache Actions und Autorotate verwendet, um die Autorotation beim Hochladen des Bildes anzuwenden. Nicht nach dem Hochladen. Damit Sie weiterhin Imagecache-Aktionen und Autorotate benötigen, automatisiert dieses Modul lediglich den Prozess und wendet die Autorotation an, ohne dass ein Bildstil erforderlich ist. Das heißt, Sie können Manual Crop damit verwenden.

Hinweis: Für die Autorotation ist die Erweiterung Exif PHP) erforderlich. aktiviert werden.

2
BobbyDank

Ich kämpfe jetzt seit einigen Stunden gegen dieses Problem und habe etwas, das für mich zu funktionieren scheint. Es ist jedoch noch nicht ausführlich getestet.

Mein Setup:

  • ImageMagick anstelle von Gd als Image Toolkit (weil Gd EXIF-Daten entfernt)
  • Imagecache Autorotate, Teil von [Imagecache Actions] (Imagecache Autorotate), das eine Bildaktion bereitstellt, mit der Bilder automatisch entsprechend ihrer EXIF-Ausrichtung gedreht werden
  • EPSA-Zuschneidemodul : EPSA-Zuschneiden war das einzige Zuschneidemodul, mit dem ich sein nach der Autorotate-Aktion in meinem Bildstil verwenden konnte voreingestellt (ich habe es zumindest mit manualcrop, imagefield_crop, simplecrop versucht)

In meinem Bildstil verwende ich die folgenden Aktionen:

  1. Autorotate Autorotate-Bild basierend auf seinen EXIF-Daten
  2. EPSA-Bildausschnitt, 150 x 150 (mit einem Seitenverhältnis von eins, da das resultierende Bild einen quadratischen AR hat)
  3. Skalieren und zuschneiden, 150 x 150, skalieren und zuschneiden, auch wenn es nicht manuell zugeschnitten wurde.

Bisher nur ein Nachteil: EPSA Crop zeigt Ihnen das zugeschnittene Bild nicht auf der Miniaturansicht der Bearbeitungsseite an, sodass Benutzer möglicherweise verwirrt sind, wenn das Zuschneiden doch erfolgreich war.

Ich hoffe, dies hilft anderen, einige Stunden Forschung zu sparen.

2
klickreflex

Im Moment gibt es also keinen soliden Weg, dies zu tun. Ich bin auf einige Anfragen für diese Funktion gestoßen, und es gibt keine funktionierende Lösung, die ich heute finden kann. Es würde sich tatsächlich lohnen, ein Modul zu schreiben, um dies zu erreichen. Ich wäre der Aufgabe sicher gewachsen, habe aber momentan keine Zeit dafür. Ich würde in ungefähr einem Monat, wenn Sie immer noch keine praktikable Lösung haben. (Ich habe viele verschiedene Module und viele Suchen ausprobiert, um keine vorhandene Lösung in Node Edit. Es gibt jedoch viele, die mit Stilen funktionieren.) Zu finden.)

Das wäre in der Verwaltung sehr einfach. Sie müssen lediglich einen Stil auf das Bild anwenden. Erstellen Sie 3 neue Stile. Einer dreht das Bild um 90 Grad im Uhrzeigersinn, der andere um 90 Grad gegen den Uhrzeigersinn und der letzte um 180 Grad. Wenn Sie sie genehmigen, wenden Sie einfach den entsprechenden Stil an, indem Sie den richtigen Typ auswählen.

Siehe this Drupal Documentation zu diesem Thema.

Tut mir leid, dass ich mich früher geirrt habe. Ich bin wirklich enttäuscht von den Modulen, die ImageMagick implementieren oder sogar den Gd erweitern. Es sollten wirklich mehr knotenspezifische Optionen verfügbar sein.

1
Brandon Bearden

Das Plupload-Integrationsmodul sieht vielversprechend aus. Plupload nterstützt clientseitige Image-Größenänderung, damit es für Ihren Anwendungsfall funktioniert, vorausgesetzt, eines der Drupal -Module ermöglicht es Ihnen, es nach Bedarf zu konfigurieren.

1
JD Leonard

Sie können ein benutzerdefiniertes Modul schreiben, das die Datei abfängt, während sie vom Benutzer hochgeladen wird, und sie im Schema Drupal.) Zurückspeichert. Dafür gibt es das Drupal = Field Attachment API und Drupal File API . Sie werden feststellen, dass beide APIs sorgfältig dokumentiert sind. Sie verwenden die Field Attachment API zur Implementierung Ein Hook, der die neue (vom Benutzer hochgeladene) Datei-URI beim Hochladen erhält (ich glaube, es war hook_field_attach_insert () , aber ich müsste meinen Code überprüfen). Sie verwenden die Datei-API (- drupal_realpath () ), um diesen URI in einen absoluten Dateisystempfad zu konvertieren, den ImageMagick versteht (relative Pfade werden nicht akzeptiert).

Sobald ImageMagick die Datei erfolgreich geladen hat, ist der Himmel (oder besser Imagicks API) das Limit. Sie müssen die geänderte Datei mithilfe der zuvor genannten APIs wieder in Drupal) speichern. Sowohl die ImageMagick- als auch die Gd-Bibliotheken sind im Web gut dokumentiert.

Mir persönlich ist kein vorhandenes Modul bekannt, das dies in D7 ausführt. Obwohl ich zugebe, wäre es schön zu haben. Ich denke, dies kann nur mit benutzerdefiniertem Code erreicht werden.

1
amateur barista

Einfaches Bild drehen Modul kann Ihnen helfen, wenn es das Bild vor dem Hochladen dreht

1
khoomy