Я пытаюсь добавить водяной знак на изображение.
И изображение, и изображение водяного знака импортируются из aws s3.
Я пытался сделать это
$watermark = tempnam(sys_get_temp_dir(), 'watermark.png');
//save the file from s3 storage to the temporary file
$content=$this->s3Manager->getFile('watermark.png',$this->verb,$watermark);
// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
list($watermark_width,$watermark_height) = getimagesize($watermark);
//Get the width and height of your image - we will use this to calculate where the watermark goes
$size = getimagesize($tempFile);
//Calculate where the watermark is positioned
//In this example, it is positioned in the lower right corner, 15px away from the bottom & right edges
$dest_x = $size[0] - $watermark_width - 15;
$dest_y = $size[1] - $watermark_height - 15;imagecopy($tempFile, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
//Finalize the image:imagejpeg($tempFile);return $tempFile;
Это терпит неудачу на imagecopy
метод —
«imagecopy () ожидает, что параметр 1 будет ресурсом, строка указана в.
Я проверил, были ли изображения успешно импортированы dest_y и dest_x, и они, кажется, в порядке.
Как говорит ошибка, imagecopy хочет ресурс. Я предполагаю, что tempfile — это строка. Вы можете сделать это
$res = imagecreatefrompng($tempfile)
и передать это в фотокопию
Других решений пока нет …