現在、サーバーからs3バケットに写真を直接アップロードする完全に機能するスクリプトがあります...
ただし、アップロードされるすべての画像に透かしを追加し始めたいと思います。ご存知のように、S3 へのアップロードでは、実際には一時ファイルとしてサーバーに保存されることはありません。
基本的に、画像を S3 にアップロードしようとしています (既に動作しています) が、その前に、その画像に透かしを追加したい (動作していません)。
S3バケットにファイルをアップロードする作業コードは次のとおりです。
if (!class_exists('S3'))require_once('S3.php');
//AWS access info
if (!defined('awsAccessKey')) define('awsAccessKey', 'BLAHBLAH');
if (!defined('awsSecretKey')) define('awsSecretKey', 'BLAHBLAH');
//instantiate the class
$s3 = new S3(awsAccessKey, awsSecretKey);
$fileName = $_FILES['theFile']['name'];
$fileTempName = $_FILES['theFile']['tmp_name'];
$fileSize = $_FILES['theFile']['size'];
$fileExt = substr($fileName, strrpos($fileName, '.') + 1);
$fileExt = strtolower($fileExt);
$custompostid = rand(1000000,9999999);
$imageName = $custompostid.".".$fileExt."";
//move the file
if ($s3->putObjectFile($fileTempName, "BUCKETNAME", $image, S3::ACL_PUBLIC_READ, array(), $imageType)) {
//success
}
else{
//error
}
しかし、ファイルをアップロードする前に、すべての画像に透かしを追加したいと考えています。この機能で:
// getting the image name from GET variable
$image = $_GET['image'];
// creating png image of watermark
$watermark = imagecreatefrompng('watermark.png');
// getting dimensions of watermark image
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
// creting jpg from original image
$image_path = '/path/to/image/folder/' . $image;
$image = imagecreatefromjpeg($image_path);
//something went wrong
if ($image === false) {
return false;
}
// getting the dimensions of original image
$size = getimagesize($image_path);
// placing the watermark 5px from bottom and right
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
// blending the images together
imagealphablending($image, true);
imagealphablending($watermark, true);
// creating the new image
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
imagejpeg($image);
// destroying and freeing memory
imagedestroy($image);
imagedestroy($watermark);
これら 2 つの作業スクリプトを 1 つに結合したいと考えています。私はそれが単純だと確信しています。すべてのコードはここにあります。あるプロセスを別のプロセスにリンクする方法がわかりません。これは私がこれを説明できる最高のものです..ありがとう!