Ūdens zīmes uzlikšana ar PHP

Jānis Rubļevskis (koko) // 2007. gada 23. oktobrī, 19:36 // #Datori // 4 komentāri 

Daudzi, kas php zina ļoti nesen, varbūt būs interesanti uzzināt, varbūt arī nebūs, bet attēlu apstrāde ar PHP ir itin viegla. Nemācīšu kā izmainīt izmērus attēliem vai tos apgraizīt, parādīšu, ka patiesībā uzlikt ūdens zīmi (watermark) nav nekas pādabisks un var tikt izveikts ar ļoti vienkārša koda palīdzību:

function setWatermark($source, $watermark, $destination, $startX = 0, $startY = 0) {

list($oldWidth,$oldHeight,$oldtype) = getimagesize($source); //dabujam pamata bildes izmērus un tipu (jpg/png/gif)

switch($oldtype) { //uztaisam pamatni ar attiecīgo funckciju

case 1: $source = imagecreatefromgif($source); break;

case 2: $source = imagecreatefromjpeg($source); break;

case 3: $source = imagecreatefrompng($source); break;

default: return false;

}

$watermark = imagecreatefrompng($watermark); /*ūdens zīmei būtu tizli likt nePNG, bet, ja sagribās, tad jāizveic augstāk redzamais switch */

imagecopy($source, $watermark, 0, 0, $startX, $startY, $oldWidth, $oldHeight); /* $startX un $startY norāda ūdenszīmes pozicionēšanu. 0, 0 būs kreisajā augšējā stūrī. Pārējiem stūriem jārēķina pēc ūdenszīmes izmēriem */

imagejpeg($source, $destination, 100); //uztaisam bildi

imagedestroy($source); //iznīcinam lieko

imagedestroy($watermark);

}

Zinu, ka pavirši, bet vienalga tas ir brutāli viegli. Tā lūk, esmu runājis

Smukāk iekš pastes.

Komentāri

kaa man nepatiik garie tagi un akadeemiskais stils...bet frorshi, thnx ;) .... ja paste paskataas atpakalj, tad man naakamajam vakar ir sanaacis sakariigs kods, paareeji vnk ir aaraa dzeeshami sviesti

buč buč sawļa

btw rekur ir mana ūber thumbnail + 20px rāmja kreitošanas funkcija : paste.php.lv/

nu fine, bet ta sanak, ka taa 'udenszime' brutali uzgruzas virsu bildei(bez caurspidiguma) vai tur ir kautkads defaultais 50% alpha?

uzgruzās virsū png, kuru by default var uztaisīt ar dažādu caurspīdīguma koeficientu. Tas pasargās no tā, ka, piemēram, kādi attēla apgabali ir pārāk gaiši. Viss klājas virsū normāli.

Piemēru var apskatīties šiten: bonsens.lv/

Paud savu subjektīvo viedokli:

Visi lauki (izņemot interneta vietni) aizpildāmi obligāti!
E-pasts publiski netiks parādīts.
Zinot vairākumu, komentāros tagi netiek atrādīti kā tagi. Linki automātiski pārveidosies par spiežamiem (cerams).
Bloga īpašnieks patur tiesības ļaunus komentārus dzēst vai pārveidot cilvēkiem patīkamākā formā, bet tajā pašā laikā neatbild par komentāru saturu.