大家好我想在WordPress中为上传的图片添加水印但是当我使用imagecreatefromjpeg($file_name)
时会抛出此警告
警告:imagecreatefromjpeg('file_name'):无法打开流:HTTP请求失败! HTTP / 1.1 401未经授权。
这是我正在使用的代码。
add_action('woocommerce_before_single_product_summary', 'adding_watermark', 20);
function adding_watermark() {
global $product;
$id = get_the_ID();
$name = get_the_title();
$link = get_the_permalink();
$padding = 3;
$opacity = 100;
$image = imagecreatefromjpeg($link);
echo '<pre>';
var_dump($image);
exit;
$watermark = imagestring($image, 1, 5, 5, 'TEST', '#fff');
$image_size = getimagesize($image);
$dest_x = $image_size[0] - $watermark_width - $padding;
$dest_y = $image_size[1] - $watermark_height - $padding;
imagecopymerge($name, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $opacity);
代码中的var_dump()事件总是返回bool(flase)
任何人都可以提供任何暗示,为什么它表现如此。谢谢你的推荐。
答案 0 :(得分:0)
使用以下代码,您可以为图片添加水印,
//目标图片的路径
$destination_image = imagecreatefromjpeg('PATH/TO/DESTINATION/JPEG/FILE');
//水印图片的路径
$watermark = imagecreatefrompng('PATH/TO/WATERMARK/PNG/FILE');
//计算水印图像的中心位置
$watermark_left = (DST_IMAGE_WIDTH/2)-(WATERMARK_WIDTH/2); //watermark left
$watermark_bottom = (DST_IMAGE_HEIGHT/2)-(WATERMARK_HEIGHT/2); //watermark bottom
//使用PHP imagecopy()合并两个图像。
imagecopy($destination_image, $watermark, $watermark_left, $watermark_bottom, 0, 0, WATERMARK_WIDTH, WATERMARK_HEIGHT); //merge image
来源 - https://www.sanwebe.com/2014/08/watermark-an-uploaded-image-with-php