如何解决我如何将 PHP Image Workshop 库与使用 php 的上传功能结合使用?
我正在编写 PHP 脚本,我想在使用 PHP 上传图像的同时使用 PHP Image Workshop 库添加文本水印?
我有 PHP Image Workshop 库示例代码,但我不知道如何在上传图像时安装和使用文本水印库?
https://phpimageworkshop.com/tutorial/1/adding-watermark.html https://phpimageworkshop.com/installation.html
Fatal error: Class 'PHPImageWorkshop\Exception\ImageWorkshopBaseException' not found
这里是我上传图片的代码
$data = explode(".",$_FILES["upload_file"]["name"]);
$extension = $data[1];
$new_file_name = rand() . '.' . $extension;
$path = $_POST["hidden_folder_name"] . '/' . $new_file_name;
foreach($_FILES['upload_file']['name'] as $key=>$val){
$file_path = $path.$_FILES['upload_file']['name'][$key];
$filename = $_FILES['upload_file']['name'][$key];
if(is_uploaded_file($_FILES['upload_file']['tmp_name'][$key])) {
if(move_uploaded_file($_FILES['upload_file']['tmp_name'][$key],$file_path)){
$upload_images[] = $file_path;
//$insert_sql = "INSERT INTO images(id,file_name,upload_time)
//VALUES('','".$filename."','".time()."')";
// mysqli_query($conn,$insert_sql) or die("database error: ". mysqli_error($conn));
}
}
}
PHP Image Workshop 库示例代码
// If no autoloader,uncomment these lines:
require_once(__DIR__.'/Core/ImageWorkshopLayer.php');
require_once(__DIR__.'/Exception/ImageWorkshopException.php');
require_once('path/to/lib/PHPImageWorkshop/ImageWorkshop.php'); // Be sure of the path to the class
// We want to add a text on the diagonal of the norway picture,// We create a function to calculate the angle with pythagore & thales theorems
// this is not an obligation,you can choose another rotation angle...
function calculAngleBtwHypoAndLeftSide($bottomSideWidth,$leftSideWidth)
{
$hypothenuse = sqrt(pow($bottomSideWidth,2) + pow($leftSideWidth,2));
$bottomRightAngle = acos($bottomSideWidth / $hypothenuse) + 180 / pi();
return -round(90 - $bottomRightAngle);
}
// Init' layers
$norwayLayer = ImageWorkshop::initFromPath('/path/to/images/norway.jpg');
$textLayer = ImageWorkshop::initTextLayer('© PHP Image Workshop','/path/to/fonts/arial.ttf',22,'ffffff',calculAngleBtwHypoAndLeftSide($norwayLayer->getWidth(),$norwayLayer->getHeight()));
// Some funky opacity
$textLayer->opacity(60);
// We add the $textLayer on the norway layer,in its middle
$norwayLayer->addLayer(1,$textLayer,'MM');
$image = $norwayLayer->getResult();
我需要在图片上添加文字水印
解决方法
您可以使用https://www.php.net/manual/en/function.imagecopy.php
你有没有尝试过这样的事情?
if (endsWith($filename,".jpeg")) {
$im = imagecreatefromjpeg($filename);
} else if (endsWith($filename,".png")) {
$im = imagecreatefrompng($filename);
}
imagecopy($im,$src_im,imagesx($src_im),imagesy($src_im));
您可以使用坐标来决定放置水印的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。