"Watermarks" mittels GD LIB setzen...

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
knalltrauma
Mitglied
Beiträge: 150
Registriert: 06.05.2004 17:14

"Watermarks" mittels GD LIB setzen...

Beitrag von knalltrauma »

So, ich hätt wieder mal ne kleine Frage :D

Hab mich soeben mal ein bisschen mit GD LIB befasst. Anscheinend ist es da möglich, Bilder auf den Webserver in ein Verzeichnis zu laden ---> anschliessend erscheinen dann die Bilder (wenn man sie aufruft) mit einem Wasserzeichen (Logo/Copyright) auf dem Bild ... transparentes .png.

Soweit, sogut...ich würde das gern für den Folder vom Smartor-Album machen. Hab aber irgendwie keine Ahnung wie ich da vorgehen muss. Oder weiss jemand ein dazu geeignetes PHP-Script?

Vielen Dank :D
---------------------------------
=Es lebe die Liebe!=
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Verschoben von Coding & Technik nach Modifikationen

Warum das Rad neu erfinden
http://www.phpbbhacks.com/viewhack.php?id=2747
knalltrauma
Mitglied
Beiträge: 150
Registriert: 06.05.2004 17:14

Beitrag von knalltrauma »

Sorry Leuchte, hab nicht gewusst dass es da schon einen MOD gibt :D

Aber vielen Dank für deine Hilfe...genau sowas hab ich gesucht :D
---------------------------------
=Es lebe die Liebe!=
knalltrauma
Mitglied
Beiträge: 150
Registriert: 06.05.2004 17:14

Beitrag von knalltrauma »

Nun...ich hab den Mod jetzt eingebaut. Aber irgendwie ist die Transparenz vom Bild nicht so das was ich will :D

So schauts bei der Demo aus (ebenfalls bei mir):
http://www.ragga-jungle.com/album_pic.php?pic_id=2

Ich hätte jedoch gerne, dass das Bild nicht transparent über das andere gelegt wird sonder 100%ig ist (also nicht durchsichtig). Weisst du evt. wo ich das einstellen kann?

Hier mal der Code, der das Wasserzeichen bewirkt:

Code: Alles auswählen

#-----[ FIND ]------------------------------------------------
#
switch ( $pic_filetype )
{
        case '.png':
                header('Content-type: image/png');
                break;
        case '.gif':
                header('Content-type: image/gif');
                break;
        case '.jpg':
                header('Content-type: image/jpeg');
                break;
        default:
                die('The filename data in the DB was corrupted');
}

readfile(ALBUM_UPLOAD_PATH  . $thispic['pic_filename']);
#
#-----[ REPLACE WITH ]-----------------------------------------
#
$watermark_ok = 0;
if ($album_config['watermark_images'] == 1)
{
        $marktype = substr($album_config['watermark_source'], strlen($album_config['watermark_source']) - 4, 4);
        switch ( $marktype )
        {
                case '.png':
                        $nm = imagecreatefrompng($album_config['watermark_source']);
                        break;
                case '.gif':
                        $nm = imagecreatefromgif($album_config['watermark_source']);
                        break;
                case '.jpg':
                case 'jpeg':
                        $nm = imagecreatefromjpeg($album_config['watermark_source']);
                        break;
                default:
                        $nm = false;
        }

        if ( $nm )
        {
                $sx = imagesx($nm);
                $sy = imagesy($nm);

                switch ( $pic_filetype )
                {
                        case '.png':
                                $im = imagecreatefrompng(ALBUM_UPLOAD_PATH  . $thispic['pic_filename']);
                                break;
                        case '.gif':
                                $im = imagecreatefromgif(ALBUM_UPLOAD_PATH  . $thispic['pic_filename']);
                                break;
                        case '.jpg':
                        case 'jpeg':
                                $im = imagecreatefromjpeg(ALBUM_UPLOAD_PATH  . $thispic['pic_filename']);
                                break;
                        default:
                                $im = false;
                }

                if ( $im )
                {
                        $sx2 = imagesx($im);
                        $sy2 = imagesy($im);
                        imagecopymerge($im,$nm,($sx2 - $sx - 5), ($sy2 - $sy - 5), 0,0,$sx,$sy,40);

                        $watermark_ok = 1;
                }
        }
}

if ($watermark_ok)
{
        switch ( $pic_filetype )
        {
                case '.png':
                case '.gif':
                        header('Content-type: image/png');
                        imagepng($im);
                        break;
                default:
                        header('Content-type: image/jpeg');
                        imagejpeg($im);
                        break;
        }
}
else
{

        switch ( $pic_filetype )
        {
                case '.png':
                        header('Content-type: image/png');
                        break;
                case '.gif':
                        header('Content-type: image/gif');
                        break;
                case '.jpg':
                case 'jpeg':
                        header('Content-type: image/jpeg');
                        break;
                default:
                        die('The filename data in the DB was corrupted');
        }

        readfile(ALBUM_UPLOAD_PATH  . $thispic['pic_filename']);

}
---------------------------------
=Es lebe die Liebe!=
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

imagecopymerge($im,$nm,($sx2 - $sx - 5), ($sy2 - $sy - 5), 0,0,$sx,$sy,40);
das 40 dürfte wohl der transparenzfaktor sein
PHP Handbuch: imagecopymerge

ah
klunzen
Mitglied
Beiträge: 341
Registriert: 01.07.2004 01:29

Beitrag von klunzen »

hallo.
habe auch den watermark mod eingerichtet.
nur wird bei mir in keinem bild das wasserzeichen angezeigt.
als admin habe ich wasserzeichen anzeigen aktiviert und mein einzufügendes bild lautet: "/images/logo2.gif"

an was könnts liegen?
klunzen
Mitglied
Beiträge: 341
Registriert: 01.07.2004 01:29

Beitrag von klunzen »

hat sich erledigt.
hab den fehler entdeckt.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“