WordPress konvertiert Bilder programmgesteuert in das WebP-Format mit der GD-Bild-EnginePhp

PHP-Programmierer chatten hier
Anonymous
 WordPress konvertiert Bilder programmgesteuert in das WebP-Format mit der GD-Bild-Engine

Post by Anonymous »

Es gibt viele PHP-Lösungen und WP-Plugins, sie alle verfügen über zusätzliche Optionen, die ich nicht möchte/brauche, z. B. wie die konvertierten Dateien bereitgestellt werden, wo sie gespeichert werden usw.
Ich brauche nichts davon und bin auf der Suche nach reinem, einfachen Code mit GD. Ich möchte kein Plugin verwenden, danke.
  • Wann sollte die Kodierung erfolgen? Wenn Sie wissen, dass es sich um einen guten Punkt in der Hook-Routine handelt, könnte dies https://make.wordpress.org/core/2019/11 ... as-upload- sein. is-complete-hook/, aber wenn Sie es besser wissen oder eine andere Lösung haben, dann verwenden Sie diese und teilen Sie mir möglicherweise mit, warum Sie einen anderen Hook wählen. Ich würde also auch gerne einen Cron-Job starten, sobald neue Bilder hochgeladen sind, wenn das besser ist. Außerdem brauche ich keine Metadaten der konvertierten Bilder in der WP-Datenbank. Da die ursprünglichen .jpeg-Dateien und ihre Metadaten in der Medienbibliothek vorhanden sind, sind die .webp-Dateien nur dazu da innerhalb des picture-Elements verwendet werden.
  • Wo sollen die konvertierten Dateien gespeichert werden? wp-content/uploads/ Standardordnerstruktur, .webp-Dateien sollten sich neben allen .jpeg-Dateien darin befinden.
  • GD Image Engine sollte für die Konvertierung verwendet werden. https://developer.wordpress.org/referen ... editor_gd/ In letzter Zeit stelle ich fest, dass Imagick einfach abstürzt oder ewig braucht, um etwas zu tun. In WP 5.2 lief es mit imagick immer noch einwandfrei, aber es müssen Änderungen eingeführt worden sein, die die Verwendung von imagick in späteren Versionen von WP nutzlos machen. Ich finde GD für mich recht stabil und schnell, es macht nichts, es erstellt verlustbehaftete WebP-Versionen. Die Methoden für die GD-Bild-Engine von WP scheinen keine Konvertierung/Kodierung https://developer.wordpress.org/referen ... d/#methods zu beinhalten, daher bin ich auch mit allen Methoden zufrieden, die im GD-Modul https verwendet werden: //www.php.net/manual/en/book.image.php bezüglich der Codierung in WebP.
  • Um all das loszuwerden Extra Nicht benötigte Bildgrößen und Optionen, die WP im Laufe der Zeit eingeführt hat. Ich habe diese Funktionen/Filter in „functions.php“.
function namespace_disable_image_sizes($sizes)
{
unset($sizes['thumbnail']); // disable thumbnail size
unset($sizes['medium']); // disable medium size
unset($sizes['large']); // disable large size
unset($sizes['medium_large']); // disable medium-large size
unset($sizes['1536x1536']); // disable 2x medium-large size
unset($sizes['2048x2048']); // disable 2x large size

return $sizes;
}
add_action('intermediate_image_sizes_advanced', 'namespace_disable_image_sizes');

// disable scaled image size
add_filter('big_image_size_threshold', '__return_false');

// disable rotated image size
add_filter('wp_image_maybe_exif_rotate', '__return_false');

// disable other image sizes
function namespace_disable_other_image_sizes()
{
remove_image_size('post-thumbnail'); // disable images added via set_post_thumbnail_size()
remove_image_size('another-size'); // disable any other added image sizes
}
add_action('init', 'namespace_disable_other_image_sizes');
  • Bilder mit hoher Auflösung und großen Abmessungen müssen konvertiert werden, siehe angehängtes Bild als Beispiel, Bildtypen können JPEG sein, png usw.
  • Die vorhandenen Größen sind mehr oder weniger diese mit möglichen Variationen.
add_image_size('4096w', 4096, 0);
add_image_size('3200w', 3200, 0);
add_image_size('2560w', 2560, 0);
add_image_size('1920w', 1920, 0);
add_image_size('1600w', 1600, 0);
add_image_size('1280w', 1280, 0);
add_image_size('1140w', 1140, 0);
add_image_size('1024w', 1024, 0);
add_image_size('960w', 960, 0);
add_image_size('800w', 800, 0);
add_image_size('768w', 768, 0);
add_image_size('640w', 640, 0);
add_image_size('425w', 425, 0);
add_image_size('320w', 320, 0);
add_image_size('240w', 240, 0);
  • Ich verwende das Bildelement mit mehr oder weniger dem folgenden Setup, sodass der Browser entscheiden kann, was benötigt wird und Daher möchte/benötige ich keine serverseitigen .htaccess-Regeln oder Backend-Konfigurationen. https://dev.opera.com/articles/responsive-images/

Image
sizes="(min-width: 640px) 60vw, 100vw"
srcset="opera-200.jpg 200w,
opera-400.jpg 400w,
opera-800.jpg 800w,
opera-1200.jpg 1200w,
opera-1600.jpg 1600w,
opera-2000.jpg 2000w">

add_filter('wp_generate_attachment_metadata', 'gd_webp_encode', 10, 3);
function gd_webp_encode($metadata, $attachment_id, $context){
ob_start();
echo $attachment_id;
echo $metadata;
ob_end_clean();
return $metadata;
}

zeigt mir nichts, das Gleiche gilt für den Versuch, sich bei der Konsole oder einer Datei im Plugin-Ordner anzumelden. Ohne die Daten zu kennen/zu sehen und welche Variablennamen welche Daten enthalten, mache ich nur Versuch und Irrtum und Vermutungen, keine Codierung. Wie wäre es also angesichts des obigen Codes zunächst möglich, zu sehen/zu wissen, welche Variablen zu diesem Zeitpunkt welche Daten enthalten, und diese irgendwo lesbar zu machen, z. B. in einer Protokolldatei im Plugin-Ordner?
Unterm Strich hilft mir das obige Setup zu verstehen, welche Variablen welche Daten enthalten, d. h. nach dem Hochladen in einem Hook, und füge Code hinzu, mit dem ich eine WebP-Version aller Größen und des Originals erstellen kann, das mit der GD-Bild-Engine erstellt wurde.< /p>
Image

Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post