was meinst Du mit nicht sinnvoll? Die Nutzung von webp-Bildern?
Announcement
Collapse
No announcement yet.
Bilder im webp Format werden im Chrome nicht angezeigt
Collapse
X
-
Originally posted by Nevada208 View Post"Im ersten Schritte lese ich die Bilddaten aus der Datenbank und lege ein JPG Bild in ein Verzeichnis."Wie soll ich es sonst machen. Die Bilder sind in der Datenbank des Warenwirtschafsystems, also nicht in irgendeinem Verzeichnis als Datei."Dann erzeuge halt JPGs" Das hatte ich vorher. Für Google ist die Ladezeit von Webseiten ein wichtiger Faktor für das Ranking. Deshalb sollen die Bilder auch im webp-Format verwendet werden da diese ohne Qualitätsverlust wesentlich kleiner sind von der Dateigröße. Was ich nicht verstehe ist, dass Die Bilder z.B. im Edge und Firefox, sowie auf einem Windowsrechner (mit Tool zur Ansicht von webp Dateien) sauber angezeigt werden. Nur im Opera und im Google Chrome werden nur einige (ca. 30%) angezeigt Beispiel: VPN Österreich Mal im Chrome und mal im Firefox öffnen. Es werden durch das PHP Script 8 verschiedene Bildgrößen erzeugt weil ich die Bilder nicht skalieren möchte. Ob nun mit oder ohne funktionierenden VPN, bei mir klappt das nur bedingt. Von den 8 erzeugten webp-Bildern werden einige im Chrome angezeigt und einige nicht, auch nicht immer die selben Größen. "Den Rest kann man mangels lesbaren Quelltext nicht beurteilen" Quelltexte ließe sich früher hier besser abbilden, einfach copy and paste... heute ist es einfach scheiße Sieht auch nicht besser aus wenn ich es mit den Code-Klammern einschließe. Ich kopiere den Quelltext aus PhpStorm und so sieht es hier aus:
PHP Code:<?php include_once("include_header.php"); $SQLsrv->targetDB = 'DATABASE0'; $sql = "select Artikelnummer from dbo.art where _freigabe = 1 and shopaktiv = 0 and _WARTEFREIGABE = 0"; $data = $SQLsrv->fetch_all_srv($sql); $conn_id = ftp_connect(FTP_SERVER); $login_result = ftp_login($conn_id, FTP_USER, FTP_PASS); ftp_pasv($conn_id, true); function convertImageToWebP($source, $destination, $quality) { $extension = pathinfo($source, PATHINFO_EXTENSION); if ($extension == 'jpeg' || $extension == 'jpg') $image = imagecreatefromjpeg($source); elseif ($extension == 'gif') $image = imagecreatefromgif($source); elseif ($extension == 'png') $image = imagecreatefrompng($source); return imagewebp($image, $destination, $quality); } $sizeArr = array(800 => 'basic', 601 => 'original', 270 => 'big', 125 => 'middle', 160 => 'preview', 55 => 'small', 80 => 'middlesmall', 45 => 'verysmall'); foreach($data as $value) { $art_nummer = $value['Artikelnummer']; $sql2 = "SELECT bild_id, Bild, blobkey, Ordnung FROM Bild WHERE Blobkey ='AR".$art_nummer."'"; $data2 = $SQLsrv->fetch_all_srv($sql2); foreach($data2 as $value) { $fp = "bilder/".$art_nummer."_".$value['Ordnung'].".jpg"; $file = $art_nummer."_".$value['Ordnung'].".jpg"; $filew = $art_nummer."_".$value['Ordnung'].".webp"; $inhalt = $value['Bild']; $f = fopen($fp,"w+",9999999); fwrite($f,$inhalt); fclose($f); foreach($sizeArr as $size => $target) { mkthumb($file, $size, $size, 'bilder/', 'bilder/transfer/', 100); $src_file = "S:/xampp/htdocs/Datentransfer/Datenexport/bilder/transfer/".$file; $output = 'S:/xampp/htdocs/Datentransfer/Datenexport/bilder/webp/'.$filew; convertImageToWebP($src_file, $output, $quality=100); $dst_file = "httpdocs/pictures_webp/".$target."/".$filew; $upload = ftp_put($conn_id, $dst_file, $output, FTP_BINARY); // put the files if($upload == false) { echo "fehlgeschlagen".$art_nummer.'<br>'; } } $counter++; unlink($src_file); unlink("S:/xampp/htdocs/Datentransfer/Datenexport/bilder/".$file); unlink("S:/xampp/htdocs/Datentransfer/Datenexport/bilder/webp/".$filew); } } ftp_close($conn_id); ?>
PHP Code:function mkthumb($img_src, // Dateiname $img_width, // max. Größe in x-Richtung $img_height, // max. Größe in y-Richtung $folder_scr, // Ordner der normalen Bilder $des_src, // Ordner der Thumbs $imgquality) // Qualitätsfaktor jpg { // Größe und Typ ermitteln list($src_width, $src_height, $src_typ) = getimagesize($folder_scr.$img_src); // neue Größe bestimmen if($src_width >= $src_height) { $new_image_width = $img_width; $new_image_height = $src_height * $img_width / $src_width; } if($src_width < $src_height) { $new_image_height = $img_width; $new_image_width = $src_width * $img_height / $src_height; } switch($src_typ) { case '2' : $image = imagecreatefromjpeg($folder_scr.$img_src); $new_image = imagecreatetruecolor($new_image_width, $new_image_height); imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height); imagejpeg($new_image, $des_src.$img_src, $imgquality); imagedestroy($image); imagedestroy($new_image); break; case '3' : $image = imagecreatefrompng($folder_scr.$img_src); $newimage = imagecreatetruecolor($new_image_width, $new_image_height); imagealphablending($newimage, FALSE); imagesavealpha($newimage, TRUE); imagecopyresampled($newimage, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height); imagealphablending($newimage, true); imagepng($newimage, $des_src.$img_src, 8); imagedestroy($image); imagedestroy($newimage); break; } }
Comment
Comment