imagecreatefromjpeg ($ file_name): не удалось открыть поток - PullRequest
0 голосов
/ 30 апреля 2018

Привет всем, я пытаюсь добавить водяной знак к загруженным изображениям в WordPress, но при использовании imagecreatefromjpeg($file_name) выдает это предупреждение

Предупреждение: imagecreatefromjpeg ('имя_файла'): не удалось открыть поток: сбой 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)

Может ли кто-нибудь дать намек, почему он так себя ведет. Спасибо в адвакне.

1 Ответ

0 голосов
/ 30 апреля 2018

Используя приведенный ниже код, вы можете добавить водяной знак для ваших изображений,

// путь к целевому изображению

$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

...