Autor Zpráva
__martin
Profil *
ahoj všem,

při zobrazování obrázků na www používám sql databázi ve které jsou uloženy. narazil jsem na problém, při kterém potřebuji obrázky zmenšit, ale ne pouze implicitně např. na šířku 80, protože obrázky situované na výšku se pak zdeformují. našel jsem že existuje funkce v php na zjištění rozměru obrázku, podle které bych si již zmenšení upravil, ale pro obrázek v databázi je zřejmě nepoužitelná.

mohl byste mi prosím někdo navrhnout nějaké řešení?

díky všem,
martin
Kajman_
Profil *
Proč si myslíte, že je nepoužitelná?

Pokud umíte načíst údaje ze souboru, tak načtete si data z db, uložíte do dočasného souboru a pustíte na to oblíbenou funkci.
__martin
Profil *
mám zatím tento kód, který zobrazí obrázek: (databáze je 602SQL takže pro connect a zobrazení používá trochu jíné funkce než MySQL)

  $q="select obrazek from karty where oznaceni='".$_GET[kod]."'";
  $cursor=wb_exec($conn, $q);
  wb_binmode($cursor, WB_PASSTHRU);
  header("Content-Type: image/jpeg");
  wb_fetch_row($cursor);
  $obr=wb_result($cursor, 1);
  echo $obr;


dle vašeho doporučení jsem během dopoledne zkusil udělat uložení binarních dat obrázku do souboru na disk:

  $fp = fopen('obr.jpg', 'wb');
  fwrite($fp,$obr);
  fclose($fp);


takhle jednoduše to asi nepůjde viďte?
Kajman_
Profil *
Mělo by to stačit. Nebo to nefunguje? A v tom případě to něco vypíše? Možná budete muset dávat pomocný soubor do adresáře, kam může php zapisovat.

A pokud ty rozměry potřebujete vícekrát, tak bude lepší si do db přidat další sloupečky se šířkou a výškou.
__martin
Profil *
soubor se vytvoří (problém s právy k adresáři by tak být neměl) ale má nulovou velikost, což značí i návratová hodnota funkce fwrite=0. log apache serveru nehlásí žádnou chybu nebo jiný výpis.

určitě by to bylo jednodušší (a rychlejší) se zapsanými údaji v db, ale nyní to takto nemohu udělat, protože tabulka v db je takto navržená a obsahuje přes 1000 obrázků, které by se musely nahrát znovu.
Kajman_
Profil *
Tu proměnnou $obr si také naplníte z databáze?

A obrázky se nahrávat znovu nemusí, můžete si v případě potřeby jeho velikosti mrknout, zda už to máte v db spočítané, jinak si vypočíst a uložit.

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: