Autor Zpráva
LukasCZ
Profil
Chtěl bych vyvořit php script který bude upravovat obrázky. Na netu je spousta věcí, tak bych to chtěl s pomocí vás nějak dát dohromady, aby z toho vznikl funkční script a který využiju myslím nejen já... Spousta z nás se tím trápí celé dny, tak ať ulehčím práci více lidem :)

Co má umět ?

1. Z původního obrázku ( třeba soubor 101.jpg ), který je uložen v adresáři "nove" vytvořit zmenšený obrázek, který bude mít maximální rozměr 500 pix - tj. větší stranu zmenšit na rozměr 500pix a menší stranu zmenšit výpočtem. Buď šířka nebo výška na tom už nezáleží. Ale menší obrázky se nezvětšují.
2. Tento nově vytvořený obrázek ještě doplnit o watermark - tj. uprostřed fotky se zobrazí průhledný text, do kterého se vypíše jméno uživatele z proměnné "$uzivatel" a nakonec jej uložit do adresare "fotky" ( aby vznikl zmenšený soubor 101.jpg v dobré kvalitě ).
3. Z tohoto zmenšeného obrázku nebo i z toho původního vytvořit miniaturu, která bude vysoká 80pixelů - na šířce nezáleží a uložit je také do adresáře fotky, akorát název bude obsahovat ještě _t ( např. 101_t.jpg ) - menší obrázky roztáhnout na těch 80 pixelů
4. Původní obrázek vymazat - aby to nakonec vyhodilo hlášku: Zmenšení obrázku OK, Watermark OK, Miniatura OK, Vymazání původního obrázku OK
tiso
Profil
LukasCZ chceš uľahčiť prácu viac ľuďom tým že napíšeš zadanie a čakáš na výsledok? Alebo ako si to predstavuješ? Podľa kalendára ešte nie je 1. apríl...
peCan
Profil
A co po nás chceš? Hotové řešení?

Ha, tiso už me předběhl;-)
LukasCZ
Profil
Na řešení pracuju až bude aspoň trochu publikovatelné, tak ho sem dám :) jen jsem myslel, že mezitím někdo napíše nějaký dobrý tipy, odkazy a tak :)
joejoe
Profil *
po watermarku nijak zvlast netouzim, resizovani obrazku mam udelane ve sve galerii
http://www.volny.cz/joejoe/download/jphotos2a1.rar
- dokonce mam nekde variantu, ktera za pomoci mplayeru vyrobi nejaky screenshot z videa.
LukasCZ
Profil
ČÁST 1 ========================

Tak jsem vytvořil první část, ale háže mi to prázdnou stránku, žádnou chybu ne, ale žádný soubor se nevytvořil... Když si dám vypsat $filename - tak je v pořádku i to zjistí správné size (OrigWidth, OrigHeight)

$filename="../nove/".$fotka.".".$koncovka."";
$copypath="../fotky/".$fotka.".".$koncovka."";

$MaxWidth="500";
$MaxHeight="500";


function Resizer(
$filename, //cesta k souboru, ktery chcete zmensit
$copypath, //cesta, kam zmenseny soubor ulozit
$MaxWidth, //maximalni sirka zmenseneho obrazku
$MaxHeight) //maximalni vyska zmenseneho obrazku
{

//zjistime puvodni velikost obrazku
list($OrigWidth, $OrigHeight)
= getimagesize($filename);
//hodnota 0 v parametrech MaxWidth resp. MaxHeight znamena,
//ze sirka resp. vyska vysledku muze byt libovolna
if ($MaxWidth == 0)
$MaxWidth = $OrigWidth;
if ($MaxHeight == 0)
$MaxHeight = $OrigHeight;

//nyni vypocitam pomer zmenseni
$pw = $OrigWidth / $MaxWidth;
$ph = $OrigHeight / $MaxHeight;

if ($pw > $ph)
$p = $pw;
else
$p = $ph;
if ($p < 1)
$p = 1;

//v p ted mame pomer pro zmenseni
//vypocitame vysku a sirku zmenseneho obrazku
$NewWidth = (int)$OrigWidth / $p;
$NewHeight = (int)$OrigHeight / $p;

//vytvorime novy obrazek pozadovane vysky a sirky
$image_p = imagecreatetruecolor($NewWidth, $NewHeight);
//otevreme puvodni obrazek se souboru
$image = imagecreatefromjpeg($filename);
//a okopirujeme zmenseny puvodni obrazek do noveho
imagecopyresampled($image_p,
$image, 0, 0, 0, 0,
$NewWidth, $NewHeight,
$OrigWidth, $OrigHeight);
//a ulozime
imagejpeg($image_p, $copypath, 100);
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0