Autor Zpráva
Gecko
Profil *
Zdravím,
stojím před problémem.
Nahrávám obrázky na server, do toho je ořezávám a vkládám watermark, chci se zeptat zdali není zásadní chyba přu uploadu přejmenovat fotku z fotka.png/gif na jpg, tím si chci zjednodušit zápis.
Majkl578
Profil
Pokud to pouze změníš, tak to problém je, bude se lišit mime type.
Pokud používáš gd knihovnu, tak obrázek můžeš exportovat jako image/jpeg pomocí imagejpeg().
Joker
Profil
Gecko:
zdali není zásadní chyba přu uploadu přejmenovat fotku z fotka.png/gif na jpg, tím si chci zjednodušit zápis
Jakým způsobem to zjednoduší zápis?

Přejmenováním obrázku na .jpg nezměníte typ obrázku, čili vznikne png/gif obrázek s příponou jpg, což může zmást programy, které podle přípony určují typ obrázku.
Tj. obrázek se v některých případech nemusí zobrazit.

Krátce: Ano, může to být problém.
Gecko
Profil *
Majkl578, Joker
čili nejdříve převedu obrazek.png/jpg a paks nim dale pracuji?
Majkl578
Profil
Gecko:
Načetl bych ho pomocí GD, upravil a vyexportoval jako PNG s koncovkou .png.
Gecko
Profil *
Tak přiznám se že nvím, jak dál.
Ukázka
$watermark = imagecreatefrompng('http://www.mstudiosphotography.com/v1site_images/watermark.png');
$image = imagecreatefromjpeg ($_FILES['image']['tmp_name']);
$rozmery = getimagesize($_FILES['image']['tmp_name']);
$ww = imagesx($watermark);
$wh = imagesy($watermark);
$w = imagesx($image);
$h = imagesy($image);

$copy = imagecopy($image, $watermark, $w-$ww, 10, 10, 0, $ww, $wh);

$miniatura = 800; /* šířka zmenšené fotky */
$pomer = $rozmery[0]/$rozmery[1];
$obr = imagecreatetruecolor($miniatura, $miniatura/$pomer);

imagecopyresampled($obr, $image, 0, 0, 0, 0, $miniatura, $miniatura/$pomer, $rozmery[0], $rozmery[1]);
imagejpeg ($obr,$_FILES['image']['tmp_name']); 
$kopirovani = move_uploaded_file($_FILES['image']['tmp_name'], $nove_jmeno);


Při uploadu projdou všechny obrázky se všemi koncovkami, jpeg a jpg upravit jdou ale ostatní formáty ne.
Majkl578
Profil
Viz řádek 2, načítáš vše jako jpg.
Joker
Profil
Gecko:
jpeg a jpg upravit jdou ale ostatní formáty ne.
To je kvůli tomu, že pro uploadovaný obrázek používáte funkci imagecreatefromjpeg, která umí načíst (jen) JPEG obrázek.
Gecko
Profil *
Už to vidím, koukal jsem zde http://programujte.com/?akce=clanek&cl=2008011401-gd-knihovna-1-lekce-dodatek- ale moc dobre to nechapu.
Obrazek prejmenovavam takto:
$cas = StrFTime("%d-%m-%Y-%H-%M-%S", Time());
$jmeno_souboru=$cas.'.'.$extenze;
$nove_jmeno="soubory/".$jmeno_souboru; //Přednastavená složka "soubory"

Tady bych měl tedy něco měnit?
AM_
Profil
Myslíš, že když si na Ferrari nalepíš značku Škoda, že ti ho pak opraví ve Škodováckém servisu? Soubory mají různé přípony z dobrého důvodu, ikdyž jsou třeba všechny obrázky, každý je uložený jiným způsobem. Když soubor přejmenuješ na JPG, nestane se z něj JPG, ale PNG se špatně zapsanou koncovkou.
Není zase tak složité si z názvu souboru vytáhnout příponu a pak jednoduchou podmínkou použít správnou imagecreatefrom* funkci.
Gecko
Profil *
AM:
Myslíš, že když si na Ferrari nalepíš značku Škoda, že ti ho pak opraví ve Škodováckém servisu? Soubory mají různé přípony z dobrého důvodu, ikdyž jsou třeba všechny obrázky, každý je uložený jiným způsobem.
Neboj, zas tak blbej nejsem.
AM_
Profil
Gecko:
Neboj, zas tak blbej nejsem.
Na přirovnání jsem demonstroval, proč nelze PNG otevírat jako JPG, ani když ho přejmenuješ. Což jsi zřejmě nevěděl, jinak bys toto téma předpokládám nezakládal.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0