Avatar billede jonasjersborg Nybegynder
06. juni 2007 - 16:13 Der er 5 kommentarer og
1 løsning

vandmærke af billeder

hej eksperter.
er der nogle der kan hjælpe mig med dette?

jeg laver CMS systemmer og har fået en opgave som lyder på at alle billeder som uploades skal automatisk vandmærkes med en sort skrift som er halvgennemsigtig og i nederste venstre hjørne.
hvordan gør jeg dette?

Jonas Jersborg
Avatar billede jakobdo Ekspert
06. juni 2007 - 17:26 #1
Jeg har haft brugt dette i et tidligere eksempel:

<?php

//Setup
$uploaddir = '/upload/';
$maxSize = 8388608;
$allowPics = array('jpg','jpeg','jpe');
$numberOfPictures = 5;

$watermark_png = 'watermark.png';

if(is_array($_FILES['userFile']))
{
        $watermark = imagecreatefrompng($watermark_png);

        $watermark_width = imagesx($watermark);
        $watermark_height = imagesy($watermark);

        echo '<pre>';
        print_r($_FILES);
        echo '<pre>';
        for($i = 0; $i < $numberOfPictures; $i++)
        {
                if($_FILES['userFile']['size'][$i] == 0)
                {
                        continue;
                }

                if($_FILES['userFile']['size'][$i] > $maxSize)
                {
                        echo 'Dit billede nummer ' . ($i+1) . ' er for stort, prøv med mindre...';
                        continue;
                }
                $uploadfile = getcwd() . $uploaddir . 'test_' . basename($_FILES['userFile']['name'][$i]);

                $ext = strtolower(end(explode(".",$_FILES['userFile']['name'][$i])));
                if(!in_array($ext,$allowPics))
                {
                        echo 'Forkert billede format i billede ' . ($i+1) . ', prøv med et andet (jpg, jpeg eller jpe)!';
                        continue;
                }

                $imgSrc = $_FILES['userFile']['tmp_name'][$i];

                $image  = imagecreatefromjpeg($imgSrc);
                $width  = imagesx($image);
                $height = imagesy($image);

                if($watermark_width > $width || $watermark_height > $height)
                {
                        $dstim = imagecreatetruecolor(30, 10);
                        imagecopyresampled( $dstim, $watermark, 0, 0, 0, 0, 30, 10, $watermark_width, $watermark_height );
                        $dest_x = $width - 35;
                        $dest_y = $height - 15;

                        imagecopymerge($image, $dstim, $dest_x, $dest_y, 0, 0, 30, 10, 100);
                }
                else
                {
                        $dest_x = $width - $watermark_width - 5;
                        $dest_y = $height - $watermark_height - 5;

                        imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
                }

                imagejpeg($image,$uploadfile,100);
                imagedestroy($image);
        }
        imagedestroy($watermark);
        header("Location: " . $_SERVER['PHP_SELF']);
        exit();
}
else
{
?>

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<table>
        <?php
        for($i = 0; $i < $numberOfPictures; $i++)
        {
                echo '<tr><td>Send file ' . ($i+1) . ':</td><td><input name="userFile[]" type="file" /></td></tr>'."\n";
        }
        ?>
        <tr><td colspan="2"><input type="submit" value="Send File" /></td></tr>
</table>
</form>

<?
}
?>
Avatar billede jonasjersborg Nybegynder
06. juni 2007 - 17:39 #2
hvad så når det samtidigt skal indsættes i databasen gallery_imgs
og felterne skal udfyldes sådan:

titel = Form feltet 'titel' - udfyldes af bruger
desc = form feltet 'desc' - udfyldes af bruger
url = dette skal være det filnavn billedet får når det er uploaded
type = form feltet 'galleri' - her kan jeg selv lave en automatisk rulleliste
Avatar billede jakobdo Ekspert
06. juni 2007 - 18:31 #3
Billedet bliver gemt her: imagejpeg($image,$uploadfile,100);
Så du kan jo gemme som du har gjort tidligere.
Avatar billede jonasjersborg Nybegynder
06. juni 2007 - 18:43 #4
smid svar. tak for hjælpen
Avatar billede jakobdo Ekspert
06. juni 2007 - 18:54 #5
Svar!
Avatar billede jakobdo Ekspert
06. juni 2007 - 20:11 #6
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester