2016-11-29 9 views
0

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

мой сценарий

<?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); 
?> 

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

+1

Adobe Lightroom и Photoshop позволяют делать это довольно легко – JimL

+0

как у вас есть какие-то тотуристические или любые демо-версии – und3rc00d3

+0

Photoshop имеет пакетную обработку в File - Automate. В Lightroom просто экспортировать файлы с водяным знаком, это опция экспорта – JimL

ответ

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), но я слишком ленив сейчас, и это работает! И теперь это на твоих руках!