【问题标题】:How do i use PHP Image Workshop library with my uploading function using php?如何将 PHP Image Workshop 库与我的上传功能一起使用 php?
【发布时间】: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();

我需要图片上的文字水印

【问题讨论】:

标签: php image file-upload upload watermark


【解决方案1】:

您可以使用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, 0, 0, 0, 0, imagesx($src_im), imagesy($src_im));

您可以使用坐标来决定放置水印的位置。

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 2010-11-07
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2015-12-18
    • 2010-11-21
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多