imagecreatefromjpeg($ file_name):无法打开流

问题描述 投票:1回答:1

大家好我试图在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)

任何人都可以提供任何暗示,为什么它表现如此。先感谢您。

php wordpress image-processing watermark
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.