Sākums » Programmēšana, php, phpTip

php Tip #2

05.05.2009 15:38 319 skatījumi 6 komentāri

Bieži gadās nepieciešamība bildes aizsargāt ar tā saucamo ūdenszīmi, piedāvāju īsu risinājumu
Vienīgā piezīme ūdenszīmes attēls jāveido PNG 24 bitu savādāk caurspīdīgums nebūs :)

tātad piedāvāju šo nelielo kodu:

 
    $file_data = 'image038.jpg';
    header('Content-type: image/jpeg');  
    $watermark = imagecreatefrompng('webdevlogo.png');  
    imageAlphaBlending($watermark, false);
    imageSaveAlpha($watermark, true);
 
    list($watermark_width,$watermark_height) = getimagesize('webdevlogo.png');
    $watermark_width = imagesx($watermark);  
    $watermark_height = imagesy($watermark);  
    $image = imagecreatetruecolor($watermark_width, $watermark_height);  
    $image = imagecreatefromjpeg($file_data);  
    $size = getimagesize($file_data);  
 
    // imagecopy($image,$watermark,($size[0]-$watermark_width),0,0,0,$watermark_width,$watermark_height); # novietot logo kreisajā augšējā stūrī
    // imagecopy($image,$watermark,0,0,0,0,$watermark_width,$watermark_height); #  novietot logo labajā augšējā stūrī
    // imagecopy($image,$watermark,0,($size[1]-$watermark_height),0,0,$watermark_width,$watermark_height); #  novietot logo kreisajā apakšējā stūrī
    imagecopy($image,$watermark,($size[0]-$watermark_width),($size[1]-$watermark_height),0,0,$watermark_width,$watermark_height); # novietot logo labajā apakšējā stūrī
    imagejpeg($image);  
    imagedestroy($image);  
    imagedestroy($watermark);
Autors: Roberts Mozgis (rob)

Web izstrādātājs ar vairāku gadu pieredzi. Esmu strādājis pie daudziem interesantiem projektiem Latvijā un ārpus tās. Specializācija PHP, JavaScript, CSS, Html, kā viss ap datubāzēm.

VN:F [1.2.3_620]
Rating: 5.0/5 (1 vote cast)
  • AnetiX www

    Kods īss, tomēr dažas nianses, kam gribētos piesieties.
    1) Kods atbalsta tikai jpg’as, bet dzīvē reti, kad tikai ar jpg’ām jāsastopās. Būtu jauki arī png,gif un pat bmp formāta atbalsts.
    2) Kods izskatās, ka sagatavots tā, lai tiktu laists in-live, t.i, bez kešošanas, ka uz katru rekvestu parādam jpg’u maucot virsū watermarku. Sīkums, bet patīkami, ja augšā būtu variablis $saveto, kas arī pie imagejpeg tiktu padots.
    3) Šāds koda fragments prasītos pēc skaisti sagatavotas funkcijas… function watermark($path,$saveto,$watermark_path,$watermark_position=”bottom”), ko tad ar vieglu copypaste un bez modifikācijām varētu ielipināt kur sirds tīko. :)
    Bet tā – paldies. :)

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    1
  • veciic

    Watermarkot var daudz vienkaarshaak un aatraak izmantojot komandrindas programmatūru:

    exec(”composite -gravity south-west watermark.png bilde.jpg bilde_ar_watermark.jpg 2>&1″);

    atliek uzlikt tikai imagemagick

    VA:F [1.2.3_620]
    Rating: 5.0/5 (1 vote cast)
    2
  • AnetiX www

    veciic: tam vajag attiecīgas permisijas uz servera, kā arī kaut ko papildus instalēt. :)

    VA:F [1.2.3_620]
    Rating: 5.0/5 (1 vote cast)
    3
  • veciic

    tas tiesa. ja hosteetaajs atsaka papildu utiliitus instaleet, tad tas atkriit.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    4
  • banesto

    ja būtu iesācējs, es neko nesaprastu.. un ko lai ar šo kodu iesāk, kā tas strādā??

    šeit ir laba metode (domāta, gan wordpresam, bet var bez liekām problēmām pārveidot, pamainot direktorijas): http://wpglamour.com/how-to-watermark-all-your-uploaded-images/

    jāveic izmaiņas root direktorijā esošajā .htaccess failā (vai jāuztaisa), kurā pasaka pielietot šo kodu katrai bildei, kas tiek rādīta konkrētajos folderos. kodā precīzāk var redzēt, kas un kā.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    5
  • banesto

    galvenais bonuss wpglabour metodei – oriģinālās bildes netiek izbojātas.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    6
  • Nav nevienas atsauces

Ir ko teikt?

Vari izmantot:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Raksta komentāru RSS