Bei der Arbeit mit Bildmedumbilzen müssen wir häufig nicht nur die Bildgröße reduzieren, sondern auch das Bild (wie horizontal oder vertikal) umdrehen, um die Bedürfnisse bestimmter visueller Effekte zu erfüllen. PHP liefert zwei sehr praktische Funktionen: ImageCopyresampled () und ImageFlip () , die zum Bildskalieren bzw. zum Bild des Bildes verwendet werden. Wenn Sie eine draufgedrehte und hochwertige Miniaturansicht machen möchten, funktionieren diese beiden Funktionen perfekt.
Diese Funktion wird verwendet, um einen Teil des Bildes in ein anderes Bild zu kopieren und zu skalieren, wobei die hochwertige Bildskalierungsverarbeitung unterstützt wird. Im Vergleich zu imageCopyressierten () ist sein Effekt empfindlicher und für die Erzeugung von Miniaturansichten geeignet.
Die ImageFlip () -Funktion wird verwendet, um ein Bild zu drehen, das gleichzeitig horizontal, vertikal und horizontal + vertikaler Flip unterstützt. Diese Funktion wurde seit Php 5.5 eingeführt.
Hier ist ein vollständiger Beispielcode, der ein Originalbild skaliert, um eine Miniaturansicht zu generieren, und dann horizontal die Miniaturansicht umdreht:
<?php
// Originalbildpfad
$sourcePath = 'https://m66.net/uploads/sample.jpg';
// Bildinformationen erhalten
list($width, $height, $type) = getimagesize($sourcePath);
// Bildressourcen erstellen
switch ($type) {
case IMAGETYPE_JPEG:
$sourceImage = imagecreatefromjpeg($sourcePath);
break;
case IMAGETYPE_PNG:
$sourceImage = imagecreatefrompng($sourcePath);
break;
case IMAGETYPE_GIF:
$sourceImage = imagecreatefromgif($sourcePath);
break;
default:
die('Nicht unterstützte Bildtypen');
}
// Miniaturgröße
$newWidth = 150;
$newHeight = intval($height * $newWidth / $width);
// Erstellen Sie eine Zielbildressource
$thumbImage = imagecreatetruecolor($newWidth, $newHeight);
// Hochwertige Skalierung
imagecopyresampled($thumbImage, $sourceImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Miniaturansichten(Horizontaler Flip)
imageflip($thumbImage, IMG_FLIP_HORIZONTAL);
// Ausgabe zum Browser oder speichern
header('Content-Type: image/jpeg');
imagejpeg($thumbImage);
// Ressourcen zerstören
imagedestroy($sourceImage);
imagedestroy($thumbImage);
?>
Stellen Sie vor der Verwendung von ImageFlip () sicher, dass Ihre PHP -Version nicht niedriger als 5,5 ist.
Um den Bildanteil aufrechtzuerhalten, wird empfohlen, die Miniaturgröße gemäß dem Seitenverhältnis des Originalbildes zu berechnen.
Wenn Sie PNG -Bilder verarbeiten, denken Sie daran, mit transparenten Hintergründen (wie z. B. Verwendung von ImagealPableing () und ImagesAvealpha () ) umzugehen.
Diese Verarbeitungsmethode ist in E-Commerce-Plattformen, Galerien, Content-Management-Systemen und anderen Szenarien sehr häufig vorkommt, insbesondere wenn Sie Bildvoranträge generieren und visuelle Effekte (z. B. Spiegel) hinzufügen müssen, kann die Kombination von ImageFlip () und imageCopyresampled () die Entwicklungseffizienz und die Bildqualität erheblich verbessern.
Durch die Erklärung dieses Artikels können Sie es leicht erfassen