| Autor | Zpráva | ||
|---|---|---|---|
| aaa Profil |
#1 · Zasláno: 18. 9. 2008, 17:46:18 · Upravil/a: aaa
mám kód na resize (resize.php):
<?php
//Source
$filename = $image;
$size = "280";
// Content type
header('Content-type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $size;
$newheight = ($height/$width)*$size;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
?>
s výpisem klasicky: <img src="resize.php?image='.$image.'"> kod pro waterark: function watermarkbyimage(
$imagepath, //cesta k zdrojovemu jpeg obrazku
$watermarkpath, //cesta k obrazku s watermarkem
$outputpath, //cesta pro vystupni obrazek
$transparency = 80, //pruhlednost watermarku (0-100)
$Xoffset = 0, //posunuti watermarku v X souradnici
$Yoffset = 0, //posunuti watermarku v Y souradnici
$Xalign = "middle", //umisteni watermarku v x souradnici
//lze zadat "middle", "left", "right"
$Yalign = "bottom" //umisteni watermarku v y souradnici
//lze zadat "top, "middle", "bottom
)
{
//otevreme oba zdrojove obrazky
$image = imagecreatefromjpeg($imagepath);
$imagew = imagecreatefromgif($watermarkpath);
//zjistime jejich velikost
list($watermarkWidth, $watermarkHeight)
= getimagesize($watermarkpath);
list($imageWidth, $imageHeight)
= getimagesize($imagepath);
$xpos = 0;
$ypos = 0;
//podle parametru funkce upravime promene
//xpos a ypos
if ($Xalign == "middle") {
$xpos = $imageWidth/2 - $watermarkWidth/2 + $Xoffset;
}
if ($Xalign == "left") {
$xpos = 0 + $Xoffset;
}
if ($Xalign == "right") {
$xpos = $imageWidth - $watermarkWidth - $Xoffset;
}
if ($Yalign == "middle") {
$ypos = $imageHeight/2 - $watermarkHeight/2 + $Yoffset;
}
if ($Yalign == "top") {
$ypos = 0 + $Yoffset;
}
if ($Yalign == "bottom") {
$ypos = $imageHeight - $watermarkHeight - $Yoffset;
}
//vlozime watermark do obrazku
imagecopymerge($image, //zdrojovy obrazek
$imagew, //obrazek watermarku
$xpos, //x-souradnice, na kterou bude vlozen
//watermark ve zdrojovem obrazku
$ypos, //y-souradnice, na kterou bude vlozen
//watermark ve zdrojovem obrazku
0,
0,
$watermarkWidth,
$watermarkHeight,
$transparency); //pruhlednost
//ulozime obrazek do souboru, parametr 100 nastavuje
//uroven komprese na nejmene ztratovou kompresi
imagejpeg($image, $outputpath, 100);
}+ default výpis: watermarkbyimage("source.jpg", "watermark.gif", "output.jpg",
10, 10, "top", "right"); teď nevim jak to dát dohromady aby to fungovalo s onair resizem... díky moc... |
||
| Alphard Profil |
#2 · Zasláno: 18. 9. 2008, 18:25:12
ta funkce pro vodoznak ukládá cílový obrázek a to by měla dělat i ta funkce pro zmenšování (současný stav resize on fly je velice neefektivní)
upravte resize pro ukládání, funkci vodoznak zavolejte po ní a pak normálně načtěte obrázek |
||
| aaa Profil |
#3 · Zasláno: 18. 9. 2008, 18:32:12
resize nechci dělat tak že se bude image ukládat... u stránek neočekává žádná závratná navštěvovanost, běhá to krásně rychle na serveru na kterém to je... pak když bude třeba thumb zvětšit, tak by byl resize s ukládáním na nic. jde mi o to jak napasovat do onfly resize vodotisk... ať už je to jakým koliv skriptem...
|
||
| aaa Profil |
#4 · Zasláno: 18. 9. 2008, 18:37:15
abych upřesnil. resize nedělá thumby ale resize mezi th a velkým obrázkem... ( http://czantik.justart.org/?type_place=goods_detail&id=550&img=images/ 20080917191043-13.jpg )
|
||
| aaa Profil |
#5 · Zasláno: 18. 9. 2008, 18:37:46 · Upravil/a: aaa
//smazáno
|
||
| Alphard Profil |
#6 · Zasláno: 18. 9. 2008, 18:43:56
je to převážně copy&paste
za imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); se vloží podstatná část těla té funkce až po imagejpeg() a zakončí se imagejpeg($thumb); samozřejmě bude potřeba synchronizovat názvy společných proměnných |
||
|
Časová prodleva: 17 let
|
|||
0