Während der PHP -Bildverarbeitung müssen wir häufig einen Teil des Bildes von einer Ressource in eine andere kopieren. Die ImageCopy -Funktion ist seit langem ein alter Freund in der Bildverarbeitung, während ImageGetClip eine relativ selten verwendete, aber sehr praktische Funktion ist. Haben Sie sich jemals gefragt, welche Flexibilität und leistungsstarke Funktionen diese beiden Funktionen im Zusammenhang zu Ihren Bildverarbeitungsvorgängen bringen können? In diesem Artikel werden Sie eingehendes Verständnis dafür vermitteln, wie Sie ImageGetClip und ImageCopy verwenden, um genaue Bildausschnitten und Kopiervorgänge zu erreichen.
ImageGetClip ist eine Funktion in der GD -Bibliothek, mit der der aktuelle Bildausschnittbereich abgerufen wird. Es gibt ein Array zurück, das vier Grenzwerte des Bildbetragsbereichs enthält: X , Y , Breite und Höhe . Dies ist sehr nützlich, wenn Sie Pflanzenbereiche dynamisch beurteilen oder wiederverwenden müssen.
$clip = imagegetclip($srcImg);
print_r($clip);
Ausgangsbeispiel:
Array
(
[x] => 0
[y] => 0
[width] => 200
[height] => 150
)
ImageCopy ist eine Funktion, mit der ein Teil des Quellbildes in das Zielbild kopiert wird, und sein Prototyp ist wie folgt:
bool imagecopy(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height
)
Es kann in das Zielbild basierend auf Koordinaten und Breite und Höhe kopiert werden und ist ein unverzichtbares Werkzeug für die Bildhüftung und die Miniaturansichterzeugung.
Schauen wir uns ein praktisches Anwendungsszenario an: Sie möchten einen Bereich aus dem Quellbild tauchen und an einen bestimmten Ort in einem anderen Bild kopieren. Dieser Bereich ist nicht festgelegt, hängt jedoch vom Kaufvallerbereich des aktuellen Bildes ab. Zu diesem Zeitpunkt müssen Sie ImageGetClip verwenden, um den Kaufviertel zuerst zu erhalten, und ihn dann mit ImageCopy kopieren.
// Laden Sie Quelle und Zielbilder
$srcImg = imagecreatefromjpeg('https://gitbox.net/images/source.jpg');
$dstImg = imagecreatetruecolor(300, 300);
// Holen Sie sich den Kumpelbereich des Quellbildes
$clip = imagegetclip($srcImg);
// Verwenden Sie Informationen zum Erntebereich imagecopy arbeiten
imagecopy(
$dstImg, // Zielbild
$srcImg, // Quellbild
50, 50, // Zielbild上的位置
$clip['x'], // Quellbild开始的 x koordinieren
$clip['y'], // Quellbild开始的 y koordinieren
$clip['width'], // Breite des Kopierbereichs
$clip['height'] // Die Höhe des Kopierbereichs
);
// Ausgabebild
header('Content-Type: image/jpeg');
imagejpeg($dstImg);
// Ressourcen frei machen
imagedestroy($srcImg);
imagedestroy($dstImg);
Einstellung des Erntebereichs : Wenn ImagetClip verwendet wurde, um den Betriebsbereich des Bildes zu begrenzen, kehrt ImageGetClip zum festgelegten Bereich zurück. Stellen Sie sicher, dass Sie den aktuellen Anbaus Kontext verstehen.
Kompatibilität des Bildformates : Unter unterschiedliche Bildformatladerladerfunktionen sind unterschiedlich. Beispielsweise verwendet PNG ImagecreateFrommpng , um sicherzustellen, dass es dem Quellbildformat übereinstimmt.
Transparente Hintergrundverarbeitung : Wenn das Zielbild PNG ist und einen transparenten Hintergrund beibehalten muss, verwenden Sie ImagesAvealpha und Bildungsabwicklung .
Die Kombination von ImageGetClip und ImageCopy bietet eine flexiblere Möglichkeit zur PHP -Bildverarbeitung. Durch die Erlangung von Kaufläufen und das genaue Kopieren kann eine komplexere Bildverarbeitungslogik wie regionale Mosaiken, lokale Unschärfe, Bildnähten usw. erreicht werden. Das Erlernen dieser Technik kann Ihre Effizienz und Genauigkeit bei der Verarbeitung von Bildern erheblich verbessern.
In der Welt der Bildverarbeitung bestimmen Details Erfolg oder Misserfolg. Ich hoffe, dass Sie durch diesen Artikel ein tieferes Verständnis der Kombination dieser beiden Funktionen haben. Wenn Sie Online-Image-Tools wie https://gitbox.net/tools/crop-editor erstellen, ist dieser Trick definitiv ein wesentlicher Teil.