note 68145 deleted from function.imagecopyresampled by cmb

From: Date: Sun, 19 May 2019 16:10:00 +0000
Subject: note 68145 deleted from function.imagecopyresampled by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-211076@lists.php.net to get a copy of this message
Note Submitter: caio at daisuki dot com dot br ---- Ok guys, the ultimate image merging tool, enjoy: function watermark($sourcefile, $watermarkfiles, $destination, $quality=90) { /* $sourcefile = Filename of the picture to be watermarked. $watermarkfile = files to add. Each is: array ( 'filename' => filename , 'position' => position to show(array), 'resample' => new dimension(array) ) You can omit any except filename $destination = jpg or png file to output (jpg if source is jpg, png if source is png). Send blank to direct output Sample: $batch = array ( array ( 'filename' => "watermark.png", 'position' => array(100,0), ), array ( 'filename' => "brilho.png", 'position' => array(200,200), 'resample' => array(30,30) ) ); watermark("picture.jpg", $batch, "", 90); <-- will add both images in bath on top of picture, preserving transparency */ $ih = getimagesize($sourcefile); $ispng = $ih[2] == 3; if ($ispng) $sourcefile_id = imagecreatefrompng($sourcefile); else $sourcefile_id = imagecreatefromjpeg($sourcefile); $sourcefile_width=imageSX($sourcefile_id); $sourcefile_height=imageSY($sourcefile_id); foreach ($watermarkfiles as $x => $watermarkfile) { $watermarkfile_id = imagecreatefrompng($watermarkfile['filename']); imageAlphaBlending($watermarkfile_id, false); imageSaveAlpha($watermarkfile_id, true); $watermarkfile_width=imageSX($watermarkfile_id); $watermarkfile_height=imageSY($watermarkfile_id); // resample? if (isset($watermarkfile['resample'])) { $im_dest = imagecreatetruecolor ($watermarkfile['resample'][0], $watermarkfile['resample'][1]); imagealphablending($im_dest, false); imagecopyresampled($im_dest, $watermarkfile_id, 0, 0, 0, 0, $watermarkfile['resample'][0], $watermarkfile['resample'][1], $watermarkfile_width, $watermarkfile_height); imagesavealpha($im_dest, true); imagedestroy($watermarkfile_id); $watermarkfile_id = $im_dest; $watermarkfile_width = $watermarkfile['resample'][0]; $watermarkfile_height = $watermarkfile['resample'][1]; } // position ? if none given, centered if (isset($watermarkfile['position'])) list($dest_x,$dest_y) = $watermarkfile['position']; else { $dest_x = ( $sourcefile_width / 2 ) - ( $watermarkfile_width / 2 ); // centered $dest_y = ( $sourcefile_height / 2 ) - ( $watermarkfile_height / 2 ); // centered } imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0, $watermarkfile_width, $watermarkfile_height); imagedestroy($watermarkfile_id); } if ($ispng) imagepng($sourcefile_id,$destination); else imagejpeg($sourcefile_id,$destination,$quality); imagedestroy($sourcefile_id); }

« previous php.notes (#211076) next »