Png metin koymak ve sonra bir jpg / gif resim zekâ birleştirmek için bir yolu var mı?
İşte ben bunu nasıl.
/* load the image */
$im = imagecreatefrompng("image.png");
/* black for the text */
$black = imagecolorallocate($im, 0, 0, 0);
/* put the text on the image */
imagettftext($im, 12, 0, 0, 0, $black, "arial.ttf", "Hello World");
/* load the jpg */
$jpeg = imagecreatefromjpeg("image.jpeg");
/* put the png onto the jpeg */
/* you can get the height and width with getimagesize() */
imagecopyresampled($jpeg,$im, 0, 0, 0, 0, $jpeg_width, $jpeg_height, $im_width, $im_height);
/* save the image */
imagejpeg($jpeg, "result.jpeg", 100);
Bu olsa oldukça basit bir örnektir.
Eğer kullandığınız dil ne demek, ama Imagemagick birkaç farklı dilde API'ler sahip değilsiniz (http://www.imagemagick.org/script/api.php).
Evet, vardır. PHP kullanarak ve GD kütüphanesi mevcut olduğunu varsayarsak, size kod örneğini kullanabilirsiniz:
Watermark Your Images with another Image Using PHP and GD Library
Kod buna benzer bir şey olacaktır:
define( 'WATERMARK_OVERLAY_IMAGE', 'watermark.png' );
define( 'WATERMARK_OVERLAY_OPACITY', 50 );
define( 'WATERMARK_OUTPUT_QUALITY', 90 );
function create_watermark( $source_file_path, $output_file_path )
{
list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path );
if ( $source_type === NULL )
{
return false;
}
switch ( $source_type )
{
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif( $source_file_path );
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg( $source_file_path );
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng( $source_file_path );
break;
default:
return false;
}
$overlay_gd_image = imagecreatefrompng( WATERMARK_OVERLAY_IMAGE );
$overlay_width = imagesx( $overlay_gd_image );
$overlay_height = imagesy( $overlay_gd_image );
imagecopymerge(
$source_gd_image,
$overlay_gd_image,
$source_width - $overlay_width,
$source_height - $overlay_height,
0,
0,
$overlay_width,
$overlay_height,
WATERMARK_OVERLAY_OPACITY
);
imagejpeg( $source_gd_image, $output_file_path, WATERMARK_OUTPUT_QUALITY );
imagedestroy( $source_gd_image );
imagedestroy( $overlay_gd_image );
}
Watermark.png dosyanın saydam 8-bit PNG görüntüleri de dahil olmak üzere herhangi bir görüntü olabilir. Ancak, beklendiği gibi 24-bit saydam PNG görüntüleri işe yaramayabilir.