Während der Bildverarbeitung sind Zuschneiden und Filtern die beiden am häufigsten verwendeten Funktionen. Das vernünftigerweise kombinierte Kombinieren der beiden kann reichhaltige Bild -Spezialeffekte erzielen, die Bildqualität verbessern oder künstlerische Effekte erzielen. In diesem Artikel werden wir ausführlich erklären, wie Sie ImageGetClip verwenden, um das Bildfoto zu erreichen und den Filtereffekt zu verbessern. Dieser Artikel nimmt die PHP -Sprache als Beispiel an, kombiniert GD -Erweiterungen zum Betrieb und zeigt die spezifische Verwendung über Beispielcode an.
ImageGetClip () ist keine integrierte Funktion für PHP, sondern in der Regel eine Entwicklerfunktion zum Extrahieren eines Bereichs (d. H. Zuschneiden) aus einem Bild. Die Kernidee besteht darin, eine neue Bildressource zu erstellen und den angegebenen Bereich des Originalbildes zu kopieren.
Geben wir ein einfaches Beispiel für Anbausfunktionen:
function imagegetclip($srcImage, $x, $y, $width, $height) {
$clip = imagecreatetruecolor($width, $height);
imagecopy($clip, $srcImage, 0, 0, $x, $y, $width, $height);
return $clip;
}
PHP GD bietet ImageFilter () -Funktion, um verschiedene Filter anzuwenden, einschließlich Unschärfe, Schärfen, Graustufen, Farbanpassung usw. Zum Beispiel:
imagefilter($image, IMG_FILTER_GRAYSCALE); // Wenden Sie sich an Graustufen
Sie können den Filter anwenden, nachdem das Bild beschnitten wurde, oder Sie können den Filter zuerst anwenden und dann zubereiten. Die beiden sind in unterschiedlichen Ordnungen und die Auswirkungen sind ebenfalls unterschiedlich.
Verwenden wir ein vollständiges Beispiel, um zu demonstrieren, wie ein Bereich aus dem Originalbild geschnitten wird, einen Unschärfenfilter auf diesen Bereich anwenden und dann speichern:
// Laden Sie das Originalbild
$sourcePath = 'https://gitbox.net/images/sample.jpg';
$sourceImage = imagecreatefromjpeg($sourcePath);
// Den Bildbereich erregen(Zum Beispiel von(50, 50)Ernte300x200Bereiche von)
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
// Wenden Sie den Gaußschen Fuzzy -Filter an
imagefilter($clip, IMG_FILTER_GAUSSIAN_BLUR);
// Speichern Sie die Ergebnisse
imagejpeg($clip, 'clip_blur.jpg');
// Ressourcen aufräumen
imagedestroy($sourceImage);
imagedestroy($clip);
Um die Auswirkungen der unterschiedlichen Reihenfolge der Filter zu verstehen und die Ergebnisse zu beschneiden, können wir dies umgekehrt tun: Zuerst Filter auf das gesamte Bild anwenden und dann aufnehmen:
$sourceImage = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
// Wenden Sie den Filter zuerst an
imagefilter($sourceImage, IMG_FILTER_GAUSSIAN_BLUR);
// 再Ernte
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
imagejpeg($clip, 'blur_clip.jpg');
Der Unterschied zwischen den beiden Ergebnissen ist:
Ernte zuerst und dann filtern : Filtern Sie nur den ausgewählten Bereich.
Filter zuerst und dann Ernte : Der Filtereffekt ist konsistent und beeinflusst das gesamte Bild und extrahiert dann den Bereich daraus.
Verschiedene Bestellungen können nach unterschiedlichen Bedürfnissen ausgewählt werden.
Filter können Overlay verwendet werden, z. B. das Auftragen von Graustufen und das Schärfen gleichzeitig nach dem Zuschneiden:
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
imagefilter($clip, IMG_FILTER_GRAYSCALE);
imagefilter($clip, IMG_FILTER_CONTRAST, -15);
imagefilter($clip, IMG_FILTER_EDGEDETECT);
imagejpeg($clip, 'clip_effect.jpg');
Ressourcenveröffentlichung : PHP sollte auf die Freigabe von Ressourcen achten, wenn sie Bilder verarbeiten, um Speicherverlust zu vermeiden.
Unterstützung bei Bildformat : Stellen Sie sicher, dass das Quellbildformat die aktuelle GD -Erweiterung unterstützt (z. B. JPEG, PNG usw.).
Filterkompatibilität : Die von verschiedenen PHP -Versionen unterstützten Filteroptionen können variieren.
Die Verwendung von ImageGetClip für das Bildzuschneiden, kombiniert mit der Filterfunktion von ImageFilter , kann verschiedene Anforderungen der Bildverarbeitung flexibel realisieren. Von der einfachen Konvertierung von Graustufen bis hin zu komplexen Spezialeffektkombinationen können leistungsstarke Bildverarbeitungsvorgänge in wenigen Funktionen abgeschlossen werden. Abhängig von der Verarbeitungsreihenfolge können mehrere visuelle Effekte erzielt werden und die Fähigkeit der künstlerischen Expression von Bildern verbessert werden.
Das Beherrschen dieser Techniken wird Ihnen bei der Bildverarbeitungsentwicklung von großer Hilfe sein.