【发布时间】:2021-07-02 06:20:38
【问题描述】:
我正在编写 PHP 脚本,我想在使用 PHP Image Workshop 库添加文本水印的同时使用 PHP 上传图像?
我有 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, 0, 0, 'MM');
$image = $norwayLayer->getResult();
我需要图片上的文字水印
【问题讨论】:
-
您向我们展示了上传过程,而没有任何关于图像处理的内容,您的问题只是基于意见。请查看 ImageMagick 的文档以找到任何线索。
-
见stackoverflow.com/questions/2235152/…,那里有很多有用的答案。
标签: php image file-upload upload watermark