php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.08.2008, 22:23  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Bild proportional verkleinern und mit Wasserzeichen überlegen

Hi zusammen,

ich komme hier leider nicht weiter

Und zwar habe ich folgendes Problem:

Ich habe 1x eine Wasserzeichengrafik und zum andern ein Bild, auf welches ich das Wasserzeichen legen möchte!

So, nun ist das Bild, auf welches das Wasserzeichen soll aber zu groß. Somit will ich es erstmal proportional kleiner skalieren.

Das ganze hab ich versucht, aber es funktioniert leider nicht so wie ich das gerne hätte

Wenn ich nur das Wasserzeichen auf das Bild legen will, die größe aber nicht ändern lasse, funktioniert es (imagejpeg($Grafik)
--> Hab ich als Kommentar im Code unten geschrieben

Aber wenn ich meine dazugehörige Funktion zum skalieren aufrufe, welche einzeln auch funktioniert, klappt es nicht!

Seh ichs nicht? Ich weiß nicht mehr weiter
Ihr?

LG Chris

PHP-Code:
<?php

function GrafikSkalieren($Grafik$Seite) {

    
$Bilddaten getimagesize($Grafik);
    
$Breite $Bilddaten[0];
    
$Hoehe $Bilddaten[1];

    if(
$Breite $Hoehe) {
        
$NeueBreite $Seite;
        
$NeueHoehe $Seite $Breite $Hoehe;
    }
    else {
        
$NeueHoehe $Seite $Breite $Hoehe;
          
$NeueBreite $NeueHoehe $Breite $Hoehe;
    }

    
$SkalierteGrafik ImageCreateTrueColor($NeueBreite$NeueHoehe);
    
$Originalgrafik ImageCreateFromJPEG($Grafik);
    
ImageCopyResampled($SkalierteGrafik$Originalgrafik0000$NeueBreite$NeueHoehe$Breite$Hoehe);

    return 
$SkalierteGrafik;
}



//Endbild wird 182x122 Pixel

header("Content-Type: image/jpeg");

include(
"../config/db.inc.php");
$jetzt time();

$result_event_navi mysql_query("SELECT event_datum, event_wo, event_flyer FROM event WHERE event_datum > '$jetzt' ORDER BY event_datum ASC LIMIT 1");
$result_event_navi01 mysql_fetch_array($result_event_navi);


$Grafik ImageCreateFromJPEG("../img/event/flyer/".$result_event_navi01['event_flyer']);



$Wasserzeichen ImageCreateFromPNG("../img/layout/event_flyer_BG.png");

ImageCopy($Grafik$Wasserzeichenimagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen));

imagejpeg(GrafikSkalieren($Grafik182));

//imagejpeg($Grafik);

?>
CHRIS ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.08.2008, 22:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Da fehlen ein paar Informationen.
Zum Beispiel: Wie groß soll das Ergebnisbild sein? Genauso groß wie das Wasserzeichen? Mindestens so groß? Höchstens so groß? Wie soll das Wasserzeichen skaliert werden? Soll es überhaupt skaliert werden? In welchen Fällen und wie?
David ist offline   Mit Zitat antworten
Alt 11.08.2008, 22:57  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

//Endbild wird 182x122 Pixel

Wasserzeichen soll garnicht skalliert werden, nur das normale Bild

Das Originalbild, welches skaliert werden soll, soll in der breite mind. 182 pixel groß sein bzw. das ist ja im endeffekt frei variable

LGC
CHRIS ist offline   Mit Zitat antworten
Alt 11.08.2008, 23:02  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von CHRIS Beitrag anzeigen
Wasserzeichen soll garnicht skalliert werden, nur das normale Bild
Aber im vorliegenden Code skalierst Du doch das Wasserzeichen, nachdem es in das Zielbild kopiert wurde. Das ist so geplant?
Und dann passt der Code auch nicht zusammen, da Du GrafikSkalieren() nicht das übergibst, was es erwartet.
David ist offline   Mit Zitat antworten
Alt 11.08.2008, 23:14  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

Wieso skaliere ich das Wasserzeichen?

Hiermit setze ich nur das Wasserzeichen auf das Bild:

PHP-Code:
ImageCopy($Grafik$Wasserzeichenimagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen)); 
CHRIS ist offline   Mit Zitat antworten
Alt 11.08.2008, 23:20  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Und danach rufst Du
Zitat:
imagejpeg(GrafikSkalieren($Grafik, 182));
auf. Das Wasserzeichen würde also mitsamt dem Bild skaliert werden.

Und zusätzlich funktioniert das auch nicht, da $Grafik eine gd-Resource ist und keine Dateipfad wie GrafikSkalieren() erwartet. Deshalb sollte PHP eigentlich auch einige Warnungen ausgeben. Anscheinend lässt Du Dir diese nicht anzeigen, entweder im Browser oder im error log, was ich eigentlich -und ich bitte dies als konstruktive Kritik aufzunehmen- bei Fortgeschrittenen voraussetze. Ich tippe mal zu Deinen Gunsten darauf, dass es Zeit für einen erholsamen Schlaf ist
David ist offline   Mit Zitat antworten
Alt 11.08.2008, 23:42  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

Ist es den überhaupt möglich das hintereinander zu machen?

Sprich erst das Bild skalieren und dann ein Wasserzeichen drauf legen?

Fehlermeldungen bekomme ich, versteht die Fehler aber leider nicht.

Hab jetzt nochmal etwas umgestellt:

PHP-Code:
<?php
//Endbild wird 182x122 Pixel

//header("Content-Type: image/jpeg");

include("../config/db.inc.php");
$jetzt time();

$result_event_navi mysql_query("SELECT event_datum, event_wo, event_flyer FROM event WHERE event_datum > '$jetzt' ORDER BY event_datum ASC LIMIT 1");
$result_event_navi01 mysql_fetch_array($result_event_navi);

function 
GrafikSkalieren($Grafik$Seite) {

    
$Bilddaten getimagesize($Grafik);
    
$Breite $Bilddaten[0];
    
$Hoehe $Bilddaten[1];

    if(
$Breite $Hoehe) {
        
$NeueBreite $Seite;
        
$NeueHoehe $Seite $Breite $Hoehe;
    }
    else {
        
$NeueHoehe $Seite $Breite $Hoehe;
          
$NeueBreite $NeueHoehe $Breite $Hoehe;
    }

    
$SkalierteGrafik ImageCreateTrueColor($NeueBreite$NeueHoehe);
    
$Originalgrafik ImageCreateFromJPEG($Grafik);
    
ImageCopyResampled($SkalierteGrafik$Originalgrafik0000$NeueBreite$NeueHoehe$Breite$Hoehe);

    return 
$SkalierteGrafik;
}



$Grafik ImageCreateFromJPEG("../img/event/flyer/".$result_event_navi01['event_flyer']);



$Wasserzeichen ImageCreateFromPNG("../img/layout/event_flyer_BG.png");

ImageCopy($Grafik$Wasserzeichenimagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen));

imagejpeg(GrafikSkalieren($Grafik182));

//imagejpeg($Grafik);

?>

Und dazu bekomm ich diese Fehler:

Code:
Warning:  getimagesize(Resource id #6) [function.getimagesize]: failed to open stream: No such file or directory in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 14

Warning:  Division by zero in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 23

Warning:  Division by zero in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 24

Warning:  imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 27

Warning:  imagecreatefromjpeg(Resource id #6) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 28

Warning:  imagecopyresampled(): supplied argument is not a valid Image resource in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 29

Warning:  imagejpeg(): supplied argument is not a valid Image resource in C:\xampp\htdocs\v6\event\event_flyer182x122px.php on line 44 
CHRIS ist offline   Mit Zitat antworten
Alt 11.08.2008, 23:47  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich den ersten Fehler so korrigiere, ist das Wasserzeichen aufs Bild legen Script ausgeschossen (

PHP-Code:
<?php
//Endbild wird 182x122 Pixel

header("Content-Type: image/jpeg");

include(
"../config/db.inc.php");
$jetzt time();

$result_event_navi mysql_query("SELECT event_datum, event_wo, event_flyer FROM event WHERE event_datum > '$jetzt' ORDER BY event_datum ASC LIMIT 1");
$result_event_navi01 mysql_fetch_array($result_event_navi);


$image_pfad "../img/event/flyer/".$result_event_navi01['event_flyer'];

function 
GrafikSkalieren($Grafik$Seite) {

    
$Bilddaten getimagesize($Grafik);
    
$Breite $Bilddaten[0];
    
$Hoehe $Bilddaten[1];

    if(
$Breite $Hoehe) {
        
$NeueBreite $Seite;
        
$NeueHoehe $Seite $Breite $Hoehe;
    }
    else {
        
$NeueHoehe $Seite $Breite $Hoehe;
          
$NeueBreite $NeueHoehe $Breite $Hoehe;
    }

    
$SkalierteGrafik ImageCreateTrueColor($NeueBreite$NeueHoehe);
    
$Originalgrafik ImageCreateFromJPEG($Grafik);
    
ImageCopyResampled($SkalierteGrafik$Originalgrafik0000$NeueBreite$NeueHoehe$Breite$Hoehe);

    return 
$SkalierteGrafik;
}



$Grafik ImageCreateFromJPEG("../img/event/flyer/".$result_event_navi01['event_flyer']);



$Wasserzeichen ImageCreateFromPNG("../img/layout/event_flyer_BG.png");

ImageCopy($Grafik$Wasserzeichenimagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen));

imagejpeg(GrafikSkalieren($image_pfad182));

//imagejpeg($Grafik);

?>
CHRIS ist offline   Mit Zitat antworten
Alt 12.08.2008, 00:37  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
ImageCopy($Grafik, $Wasserzeichen, imagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 0, 0, imagesx($Wasserzeichen), imagesy($Wasserzeichen));

imagejpeg(GrafikSkalieren($image_pfad, 182));
$Grafik "enthält" die geänderten Bilddaten.
Die Datei auf der Festplatte nicht. Aber Du übergibst GrafikSkalieren() den Pfad zur unveränderten Datei auf der Platte.
Übergibt doch einfach die gd-Resource und arbeite damit innerhalb der Funktion. Einfach das Laden der Datei innerhalb von GrafikSkalieren weglassen.
David ist offline   Mit Zitat antworten
Alt 12.08.2008, 13:50  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

Hab mich jetzt nochmal von vorn dran gesetzt, ohne Funktion gearbeitet und nu funktioniert es auch so wie ich es will

Danke für deinen Gedankenanstoß

Vielleicht hat ja irgendjemand irgnedwann mal das gleich Problem, ich lass das funktionierende Script mal hier


PHP-Code:
<?php
//Endbild wird 182x122 Pixel
header("Content-Type: image/jpeg");

include(
"../config/db.inc.php");
$jetzt time();


$result_event_navi mysql_query("SELECT event_datum, event_wo, event_flyer FROM event WHERE event_datum > '$jetzt' ORDER BY event_datum ASC LIMIT 1");
$result_event_navi01 mysql_fetch_array($result_event_navi);


$flyer_pfad "../img/event/flyer/".$result_event_navi01['event_flyer'];

$Wasserzeichen ImageCreateFromPNG("../img/layout/event_flyer_BG.png");

$Seite 182;

    
$Bilddaten getimagesize($flyer_pfad);
    
$Breite $Bilddaten[0];
    
$Hoehe $Bilddaten[1];

    if(
$Breite $Hoehe) {
        
$NeueBreite $Seite;
        
$NeueHoehe $Seite $Breite $Hoehe;
    }
    else {
        
$NeueHoehe $Seite;
          
$NeueBreite $Seite $Breite $Hoehe;
    }


    
$SkalierteGrafik ImageCreateTrueColor(182122);
    
$Originalgrafik ImageCreateFromJPEG($flyer_pfad);


    
ImageCopyResampled($SkalierteGrafik$Originalgrafik0000$NeueBreite$NeueHoehe$Breite$Hoehe);



ImageCopy($SkalierteGrafik$Wasserzeichenimagesx($SkalierteGrafik)-imagesx($Wasserzeichen), imagesy($SkalierteGrafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen));

imagejpeg($SkalierteGrafik);

?>
CHRIS ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Bild hochladen --&amp;amp;gt; verkleinern --&amp;amp;gt; in Datenbank speich Datenbanken 6 28.02.2011 06:00
[Erledigt] Bild verkleinern PHP Tipps 2004 3 23.03.2009 17:19
Bild (beim Hochladen) verkleinern Heizkessel PHP Tipps 2008 1 27.01.2008 21:33
[Erledigt] Bild verkleinern vor Upload PHP Tipps 2007 10 27.11.2007 22:02
bilder verkleinern 022.9 PHP Tipps 2006 4 26.10.2006 08:23
Bild verkleinern und EXIF BaedDog PHP-Fortgeschrittene 7 18.04.2006 12:44
Bild verkleinern dimitri PHP Tipps 2006 2 15.03.2006 08:21
Bild verkleinern ohne File PHP Tipps 2006 6 13.02.2006 17:00
[Erledigt] Bild mit clip:rect verkleinern und per hover wieder normal HTML, Usability und Barrierefreiheit 3 21.12.2005 14:54
1001 Bild auf einmal verkleinern? dethlef14 PHP Tipps 2005-2 10 18.10.2005 14:58
[Erledigt] Foto proportional verkleinern / vergrößern PHP Tipps 2005-2 1 15.10.2005 15:50
[Erledigt] Bild aus Datei in Bild einfügen PHP Tipps 2005-2 1 07.08.2005 23:36
Bild verkleinern + upgeloadete Datei PHP Tipps 2005 3 07.03.2005 13:24
bild mit wasserzeichen uploaden! Speicherproblem!! 18inch PHP Tipps 2004-2 4 18.12.2004 00:23
bild verkleinern PHP Tipps 2004 7 19.08.2004 15:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php grafik verkleinern, http://www.php.de/php-fortgeschrittene/46645-erledigt-bild-proportional-verkleinern-und-mit-wasserzeichen-ueberlegen.html, php bild proportional skalieren, bilder verkleinern wasserzeichen, php gd wasserzeichen, php bild verkleinern und wasserzeichen, javascript bild proportional skalieren, php bild proportional verkleinern, imagecopyresampled proportional, bild proportional skalieren javascript, javascript bild proportional verkleinern, bild proportional, javascript bilder proportional verkleinern, fotos verkleinern wasserzeichen, bild proportional verkleinern html, wasserzeichen verkleinern, php bild verkleinern wasserzeichen, php bild ohne skalierung verkleinern, php image überlegen, wasserzeichen skalieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum