Witam.
Posiadam funkcje do nakładania znaku wodnego.
Problem w tym, że jak chce użyć znaku wodnego PNG 24 (z photoshopa) to źle sioęon wyświetla. Jakieś szlacki się pokaują zamiast znaku.
Co mogę zrobic, żeby działały te pliki? Czy któreś funkcje są źle użyte?
Czy jakąś funkcje muszę zamienić na inną?
//$zdjecie - na to zdjecie bedzie wklejany znak wodny
//$zdjecie_format - format tego djecia
//$znaczek - znak wodny
//$znaczek_format - format pliku znaku wodnego
function znak_wodny($zdjecie, $zdjecie_format, $znaczek, $znaczek_format, $pozycja, $transparent, $znak_pozycja_pion=0, $znak_pozycja_poziom=0) {
switch($znaczek_format) {// importujemy plik gif ze znakiem
case 'gif':
$image1 = imageCreateFromGif($znaczek);
break;
case 'png':
$image1 = imageCreateFromPng($znaczek);
break;
}
switch($zdjecie_format) {// otwieramy plik jpg, na którym ma być naklejony znaczek
case 'jpg':
$image2 = ImageCreateFromJpeg($zdjecie);
break;
case 'gif':
$image2 = ImageCreateFromGif($zdjecie);
break;
case 'png':
$image2 = ImageCreateFromPng($zdjecie);
break;
}
$zdjecie_w = imagesx( $image2 ); // szerokość pliku
$zdjecie_h = imagesy( $image2 ); // wysokość pliku
$znaczek_w = imagesx( $image1 ); // szerokość znaczka
$znaczek_h = imagesy( $image1 ); // wysokość znaczka
if ( $pozycja == "tl" ) {
$od_x = $znak_pozycja_poziom;//ok
$od_y = $znak_pozycja_pion; //ok
}
if ( $pozycja == "tr" ) {
$od_x = $zdjecie_w - $znaczek_w - $znak_pozycja_poziom;//ok
$od_y = $znak_pozycja_pion;//ok
}
if ( $pozycja == "bl" ) {
$od_x = $znak_pozycja_poziom;//ok
$od_y = $zdjecie_h - $znaczek_h - $znak_pozycja_pion; //ok;
}
if ( $pozycja == "br" ) {
$od_x = $zdjecie_w - $znaczek_w - $znak_pozycja_poziom;//ok
$od_y = $zdjecie_h - $znaczek_h - $znak_pozycja_pion; //ok
}
//begin center
if ( $pozycja == "cl" ) { //NIE
$od_x = $znak_pozycja_poziom;//ok
$od_y = ($zdjecie_h/2)-($znaczek_h/2);//ok chyba
}
if ( $pozycja == "cr" ) { //NIE
$od_x = $zdjecie_w - $znaczek_w - $znak_pozycja_poziom;//ok
$od_y = ($zdjecie_h/2)-($znaczek_h/2);//ok chyba
}
if ( $pozycja == "bc" ) { //NIE
$od_x = ($zdjecie_w/2)-($znaczek_w/2);//ok chyba
$od_y = $zdjecie_h - $znaczek_h - $znak_pozycja_pion;//ok
}
if ( $pozycja == "tc" ) { //NIE
$od_x = ($zdjecie_w/2)-($znaczek_w/2);//ok chyba
$od_y = $znak_pozycja_pion;//ok
}
if ( $pozycja == "cc" ) { //NIE
$od_x = ($zdjecie_w/2)-($znaczek_w/2);//ok chyba
$od_y = ($zdjecie_h/2)-($znaczek_h/2);//ok chyba
}
//end center
imagecopymerge( $image2, $image1, $od_x, $od_y, 0, 0, $znaczek_w, $znaczek_h, $transparent );
//imagejpeg( $image2 );
switch($zdjecie_format) {
case 'jpg':
ImageJpeg($image2, $zdjecie, 70);//poziom kompresji 80
break;
case 'gif':
ImageGif($image2, $zdjecie);
break;
case 'png':
ImagePng($image2, $zdjecie);
break;
}
imagedestroy( $image1 );
imagedestroy( $image2 );
}
Prosze o pomoc, mam z tym duży problem
Ten post edytował kukix 26.05.2011, 13:24:59