imagecreatefromjpeg($ file_name):无法打开流

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imagecreatefromjpeg($ file_name):无法打开流相关的知识,希望对你有一定的参考价值。

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

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

答案

使用以下代码,您可以为图像添加水印,

//目的地图像的路径

$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

以上是关于imagecreatefromjpeg($ file_name):无法打开流的主要内容,如果未能解决你的问题,请参考以下文章

为啥 imagecreatefromjpeg 不适用于 .jpg 扩展名?

调用未定义的函数 imagecreatefromjpeg() 并启用 GD

imagecreatefromjpeg($ file_name):无法打开流

PHP - imagecreatefromjpeg 为 <1M 图像使用 100M 内存

已安装 Gd,但“调用未定义的函数 imagecreatefromjpeg()”

调用未定义的函数 imagecreatefromjpeg() GD 已安装但无法识别