Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]znak wodny
Forum PHP.pl > Forum > PHP
Fixus
Witam...zmontowałem taki skrypt do tworzenia znaku wodnego na zdjęciu
Kod
<?php

function watermark($imgName, $text, $font, $size) {
    if(!($img = imagecreatefromjpeg($imgName))) {
        echo "Nie mogę otworzyć pliku: ".$imgName;
        return false;
        }
    $sW = imagesx($img);
    echo "sw: ".$sW."<br />";
    
    $arr = imagettfbbox($size, 0, $font, $text);
    echo "arr: ".$arr."<br />";
    $width = abs($arr[2] - $arr[0]) + 5;
    echo $width."<br />";
    $height = abs($arr[1] - $arr[7]) + 1;
    echo $height."<Br />";
    
    $white = imagecolorallocate($img, 0, 0, 0);
    echo $white."<br />";
    
    $posX = $sW - $width;
    $posY = $sW;
    imagettftext($img, $size, 0, $posX, $posY - 5, $white, $font, $text);
    
    $name = substr($imgName, 0, strlen($imgName) - 4);
    $name = $name."-watermarked.jpg";
    echo $name."<br />";
    echo $img."<br />";
    
    imagejpeg($img, $name);
    imagedestroy($img);
}

watermark('gory.jpg', 'napis wodny', 'verdana.ttf', 14);
?>
<img src='gory-watermarked.jpg' />

Zdjęcie jest otwierane, potem jest tworzone gory-watermarked.jpg ale...ale gdy wyświetlam to zdjęcie (albo otwieram w katalogu) to jest bez znaku wodnego. ktoś wie gdzie jest problem?
mild
  1. <?php
  2. $sW = imagesx($img);
  3. $posY = $sW;
  4. imagettftext($img, $size, 0, $posX, $posY - 5, $white, $font, $text);
  5. ?>

Wspolrzedna Y napisu jest taka sama jak szerokosc obrazka... mozliwe ze to gdzies poza jego krawedziami.
Fixus
faktycznie w tym był błąd smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.