изображение — Php Photos Edit

Здравствуйте, у меня есть папка с 3000 фотографиями, и мне нужен скрипт, который добавляет логотип моего сайта под изображением, у меня есть скрипт для редактирования изображений, но мне нужен скрипт, который открывает изображения и выполняет процедуры,

мой сценарий

<?php
$logo = imagecreatefrompng("logo.png");

header('Content-type: image/jpg');

$image = imagecreatefromjpeg("image.jpg");

imagecopy($image, $logo, 132, 95, 0, 0, 25, 25);

imagejpeg($image);

imagedestroy($image);
?>

Также, если у кого-то есть программа для Windows, пожалуйста, пришлите мне.

0

Решение

Я бы сделал это так:

function add_png_logo(){
$dir = APPPATH.'assets/img/'; # Where your PNG photos are
$dirUpload = APPPATH.'assets/uploads/'; # Where they will be saved
$baseUrl = 'http://127.0.0.1/tests/assets/uploads/'; # Base to link merged images
# Where the work begins
$iteractor = new DirectoryIterator($dir);
$ext = ['png'];
$i = 0;
# Function to save individual files
function save_png($getFilename,$getFilePath){
$medida = array('width'=>'1024','height'=>'1024',);
// Creates a temp image
$TempPngFile = imagecreatetruecolor($medida['width'], $medida['height']);
# Defines a transparent color to fill all image
$TransparentColor = imagecolorallocatealpha($TempPngFile, 0, 0, 0, 127);
imagefill($TempPngFile, 0, 0, $TransparentColor);
# Forces transparency definition
imagealphablending($TempPngFile, true);
imagesavealpha($TempPngFile, true);
# Open image
$logo = imageCreateFromPng(APPPATH.'cache/mark.png');
# Fix transparency definitions
imageAlphaBlending($logo, true);
imageSaveAlpha($logo, true);
# Open image
$img2 = imageCreateFromPng($getFilename);
# Forces transparency definition
imageAlphaBlending($img2, true);
imageSaveAlpha($img2, true);
# insert $logo and $img2 in $TempPngFile and setting positioning
imagecopy($TempPngFile, $img2, 0, 0, 0, 0, imagesx($img2), imagesy($img2));
imagecopy($TempPngFile, $logo, 25, 25, 0, 0, imagesx($logo), imagesy($logo));
# Save final image to $getFilePath
imagepng($TempPngFile, $getFilePath);
// Destroy images
imageDestroy($TempPngFile);
imageDestroy($logo);
imageDestroy($img2);
}
# Loop in $dir, get all PNG files to overlap $logo on left top
foreach ($iteractor as $entry) {
if ($entry->isFile()) {
if (in_array($entry->getExtension(), $ext)) {
$getFilename = $dir.$entry->getFilename();
$getImageName = $entry->getFilename().'_'.$i++.'_.png';
$getFilePath = $dirUpload.$getImageName;
save_png($getFilename, $getFilePath);
echo 'Created image: <a href="'.$baseUrl.$getImageName.'" target="_blank">'.$getImageName.'</a><br>';
}
}
}
}

OBS: Он использует php-gd расширение. И, конечно же, есть способ конвертировать JPG в PNG перед наложением файлов (или вы должны сначала конвертировать 3000 фотографий в PNG), но мне сейчас лень, и это работает! И теперь это в ваших руках!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]