» Poradna » Web a internet

PHP a GD knihovna

 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Zdravíčko, mám tenhle skript:function resizer($filename, $copypath, $MaxWidth, $MaxHeight) { list($OrigWidth, $OrigHeight) = getimagesize($filename); if ($MaxWidth == 0) $MaxWidth = $OrigWidth; if ($MaxHeight == 0) $MaxHeight = $OrigHeight; $pw = $OrigWidth / $MaxWidth; $ph = $OrigHeight / $MaxHeight; if ($pw > $ph) $p = $pw; else $p = $ph; if ($p < 1) $p = 1; $NewWidth = (int) $OrigWidth / $p; $NewHeight = (int) $OrigHeight / $p; $image_p = imagecreatetruecolor($NewWidth,$NewHeight); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $NewWidth, $NewHeight, $OrigWidth, $OrigHeight); imagejpeg($image_p, $copypath, 100);}Všechno funguje skvěle ovšem, když chci nahrát třeba fotku na výšku která má 3600px tak jí to otočí na šířku. S menšíma fotkama problém nemám. Nevíte kde by mohl být problém?

Odpovědi na otázku

 |   |  Microsoft Windows 7 IE 10.0

a není "problém" v té fotce? totiž že je vlastně "na šířku", ale atribut jí otáčí a říká, že je na výšku a ta gd knihovna tento atribut ignoruje - já sám se s tímto občas potýkám s fotkama z navigace, která má senzor otočení a právě podle tohoto senzoru nastavuje ten atribut rotace fotky, jinak jsou vlastně všechny fotky "na šířku"

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Obávám se, že tím to to nebude. také mě to napadlo, ale jelikož nahrávám na web original fotku, zmenšenou fotku a náhled, tak originál je tak jak má být, ale ty zmenšené fotky které se generujou z toho originálu se nepochopitelně sami otočí.. proto to musí být někde v té funkci resizer, ale nic mě nenapadá..

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

no ale to by tomu odpovídalo - originál je správně, ale resize tím kódem odstraní tu informaci o otočení a proto jsou fotky špatně

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Aha, takhle to funguje.. A nevíte jak to vyřešit?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

podívej se do toho originálního souboru, jestli má v exifu vlastnost Orientation a jakou má hodnotu - nejspíš 3, 6 nebo 8pokud to tam najdeš, pak musíš načíst tuto hodnotu, a podle ní provést otočení

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Přes exif reader jsem našel pouze Orientation: top

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

a načíst to pomocí exif funkcí php bys nemohl? aby to ukazovalo opravdu uložené hodnoty a né nějak přeložené nějakým programem

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Tak jsem to zkusil přes php, zde je výsledek:FILE.FileName: org00050.jpgFILE.FileDateTime: 1366628065FILE.FileSize: 2753678FILE.FileType: 2FILE.MimeType: image/jpegFILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROPCOMPUTED.html: width="3648" height="2736"COMPUTED.Height: 2736COMPUTED.Width: 3648COMPUTED.IsColor: 1COMPUTED.ByteOrderMotorola: 0COMPUTED.ApertureFNumber: f/5.6COMPUTED.Thumbnail.FileType: 2COMPUTED.Thumbnail.MimeType: image/jpegIFD0.ImageWidth: 3648IFD0.ImageLength: 2736IFD0.Compression: 1IFD0.PhotometricInterpretation: 2IFD0.Make: PanasonicIFD0.Model: DMC-FZ50IFD0.Orientation: 1IFD0.XResolution: 1207959552/16777216IFD0.YResolution: 1207959552/16777216IFD0.PlanarConfiguration: 1IFD0.ResolutionUnit: 2IFD0.Software: Ver.1.0 IFD0.DateTime: 2013:04:22 12:03:57IFD0.YCbCrPositioning: 1IFD0.Exif_IFD_Pointer: 272IFD0.UndefinedTag:0xC4A5: PrintIM0250d ¬ Ä€ ' '—'°''^'‹'Ë'ĺ'THUMBNAIL.Compression: 6THUMBNAIL.Orientation: 1THUMBNAIL.XResolution: 1207959552/16777216THUMBNAIL.YResolution: 1207959552/16777216THUMBNAIL.ResolutionUnit: 2THUMBNAIL.DateTime: 2013:04:22 12:03:57THUMBNAIL.JPEGInterchangeFormat: 7924THUMBNAIL.JPEGInterchangeFormatLength: 4893EXIF.ExposureTime: 10/2500EXIF.FNumber: 56/10EXIF.ExposureProgram: 2EXIF.ISOSpeedRatings: 100EXIF.ExifVersion: 0221EXIF.DateTimeOriginal: 2013:04:20 11:01:12EXIF.DateTimeDigitized: 2013:04:20 11:01:12EXIF.ComponentsConfiguration: EXIF.CompressedBitsPerPixel: 4/1EXIF.ExposureBiasValue: 0/100EXIF.MaxApertureValue: 30/10EXIF.MeteringMode: 5EXIF.LightSource: 0EXIF.Flash: 16EXIF.FocalLength: 74/10EXIF.FlashPixVersion: 0100EXIF.ColorSpace: 1EXIF.ExifImageWidth: 3648EXIF.ExifImageLength: 2736EXIF.SensingMethod: 2EXIF.FileSource: EXIF.SceneType: EXIF.CustomRendered: 0EXIF.ExposureMode: 0EXIF.WhiteBalance: 0EXIF.DigitalZoomRatio: 0/10EXIF.FocalLengthIn35mmFilm: 35EXIF.SceneCaptureType: 0EXIF.GainControl: 0EXIF.Contrast: 0EXIF.Saturation: 0EXIF.Sharpness: 0Ovšem když to zkusím na originální fotce jak na šířku, tak na výšku, orientace je pořád jenom 1

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 9.0

no podle tohoto by to měla být fotka na šířku bez rotace - je to tak?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Tahle zrovna jo, ale když to zkusím načíst z fotky na výšku, orientace zůstane stejně 1 :/

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 9.0

no ale fotku na výšku jsi udělal otočení foťáku o 90° a foťák nemá senzor otočení, takže proto v tom exifu je to pořád stejný

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux AppleMAC-Safari 5.0

Tomu bych rozumnel, ale proc mi to blbne pri nahravani, kdyz orientaci to ma stejnou.. to porad nechapu..

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

no ale já nevím, jak se z fotky, která je na šířku, udělala fotka "na výšku", která, ale ve svých atributech má, že je na šířku a když se uploaduje na web, tak se zmenšeniny defakto udělají správně na šířku.Není problém v tom, že v nějakém prohlížeči fotek máte nastaveno otočení této fotky při prohlížení, ale že to je pouze vlastnost daného prohlížeče fotek (že si třeba u každé fotky pamatuje náhled a otočení) a s vlastní fotkou to nemá nic společného?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Myslel jsem taky, že to může být nějaká vymoženost Chromu, ale zkoušel jsem to v ostatních a stejně se fotky otáčeli..

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

a můžeš někam dát ty fotky ke stažení - jednu, která dělá problémy a druhou, která problémy nedělá?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Tak tady jsou originální fotky v archivu: http://ferdajz.sdh-chrudim.cz/Vranov.rar

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

no je to přesně tak, jak jsem předpokládalfotka P1000133.JPG ti vytvoří náhled správně - na šířku, zatímco fotka P1000132.JPG, která je na výšku, ti zmenšeninu udělá špatně - na šířku

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Přesně, ale jak to ošetřit, když v exifu mám Orientation u obou 1. Na řešení jsem pořád nepřišel.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 9.0

no to není pravda - právě podle toho exifu jsem to poznaljinak výchozí prohlížeč fotek ve win 7 mi obě fotky ukázal na šířku, že ten exif ignoroval, ale IrFan to umí zobrazit správně:---- System ----File Name                       : P1000132.JPG---- IFD0 ----Orientation                     : Rotate 90 CW---- Panasonic ----Rotation                        : Rotate 90 CW---- IFD1 ----Orientation                     : Rotate 90 CW---------------------------------------------------------- System ----File Name                       : P1000133.JPG---- IFD0 ----Orientation                     : Horizontal (normal)---- Panasonic ----Rotation                        : Horizontal (normal)---- IFD1 ----Orientation                     : Horizontal (normal)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Ať zkouším jakejkoliv prohlížeš, všude se mi fotky zobrazujou "správně"..Jak si přišel na tenhle výpis? Ať už se kouknu na exif přes Reader nebo přes PHPko na serveru, nic z toho tam nemám :(

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0

to je výpis z exiftool - http://www.sno.phy.queensu.ca/~phil/exiftool/a pomocí kódu v php: $vysl=exif_read_data('P1000132.JPG'); print_r($vysl); $vysl=exif_read_data('P1000133.JPG'); print_r($vysl);mám tento výsledek (opět ukazuje, že ten P1000132.JPG je otočený), takže někde musíš dělat chybu, když ti vychází, že všechny obrázky jsou stejný - na šířku:Array( [FileName] => P1000132.JPG [Orientation] => 6 [THUMBNAIL] => Array ( [Orientation] => 6 ))Array( [FileName] => P1000133.JPG [Orientation] => 1 [THUMBNAIL] => Array ( [Orientation] => 1 ))

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

Díky moc, takhle mi to už funguje a teď když koukám na internet, tak stačí ošetřit hodnoty 3,6 a 8? :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 9.0

jo, přesně tak

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 7 IE 10.0

Pro redakci Živě:Umožněte v poradně, alespoň změnu písma a stylu pro výpisy chyb, logů, zdrojové kódy pro lepší čitelnost

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 26.0.1410.63

Michal Kolesa furt vzkazuje...

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: 10, Knihovna, Filename




Určitě si přečtěte

Solární panely v silnici vypadaly jako dobrý nápad. V praxi se ale neosvědčily

Solární panely v silnici vypadaly jako dobrý nápad. V praxi se ale neosvědčily

** Nápad použít na silnice místo asfaltu solární panely vypadal slibně ** Praktické testy však odhalily celou řadu nevýhod ** Nejhorší je směšná účinnost ve srovnání s fotovoltaickou elektrárnou

Karel Kilián | 65

Pojďme programovat elektroniku: Jak vlastně funguje akcelerometr a gyroskop nejen ve vašem telefonu

Pojďme programovat elektroniku: Jak vlastně funguje akcelerometr a gyroskop nejen ve vašem telefonu

** Každý současný vybavený mobil má akcelerometr a gyroskop ** Jenže co každé z těchto čidel vlastně dělá a jak vypadá? ** Dnes si to vysvětlíme a do hry zapojíme i Airbus A380 a Arduino

Jakub Čížek | 12

Praktické vychytávky, které si chcete doinstalovat do Windows

Praktické vychytávky, které si chcete doinstalovat do Windows

** Pokud vás nudí vzhled nabídky Start, snadno jej můžete změnit. ** Stejně tak existují programy na přidání záložek do programů. ** Spokojit se ani nemusíte se základním ovládáním hlasitosti.

Vladislav Kluska | 46

Nový iPhone a další novinky Applu: sledujte, na co se zase budou stát fronty

Nový iPhone a další novinky Applu: sledujte, na co se zase budou stát fronty

** Apple dnes představuje nové produkty v čele s novými iPhony ** Nemusí zůstat jen u telefonů, čekají se i další novinky ** Úvodní přednáška začíná v 19:00 našeho času

David Polesný | 57

Astronomové objevili daleko za Plutem objekt s extrémní dráhou. Může ukazovat na existenci planety Devět

Astronomové objevili daleko za Plutem objekt s extrémní dráhou. Může ukazovat na existenci planety Devět

** Astronomové objevili daleko za Neptunem těleso 2015 TG387 ** Okolo Slunce se pohybuje po extrémně protáhlé dráze ** Jeho dráha může ukazovat na existenci planety Devět

Petr Kubala | 10

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

** Máme eObčanku, máme čtečku, vyzkoušeli jsme přihlášení na weby úřadů. ** Objevily se drobné problémy, podařilo se nám je vyřešit. ** Používání eObčanky pro online identifikaci je velmi pohodlné.

Marek Lutonský | 35

Vylaďte si Wi-Fi: Podívejte se, jaká pásma máte doma volná a kam signál nedosáhne

Vylaďte si Wi-Fi: Podívejte se, jaká pásma máte doma volná a kam signál nedosáhne

** Prozkoumejte, jaké pásmo je pro vaši síť nejlepší ** Díky heat mapě snadno poznáte, kde to bude se signálem horší ** Vše zvládnete i z mobilního telefonu

Vladislav Kluska | 36


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku