Gå til innhold

imagecreatefromjpeg fungerer bare på noen bilder...


Anbefalte innlegg

Heisann!

 

Jeg bruker imagecreatefromjpeg for å hente bredde og høyde på noen bilder som ligger i en arbeidsportefølje på en webside jeg jobber med. Men; noen av bildene som lastes opp klarer ikke funksjonen å hente bredde og høyde fra. Dette gjelder spesielt bilder som er lastet opp fra andre maskiner enn min egen.

 

Bildene er av samme format, redigert i samme program, men allikevel oppstår feien, og imagecreatefromjpeg klarer ikke hente noen bredde eller høyde.

 

Noen som har noen ideer til hva som kan være problemet her?

Legge ved koden under som viser bruken av funksjonen, dersom dette kan være til noen hjelp.

 

Håper det finnes noen hoder der som ser noe jeg ikke ser! :)

-Djus

 

//PRINTED IMAGE:
$picture_url = "http://www.domene.com/dev/bildbas/".$folder."/".$picture;
// find out size of image
$img = ImageCreateFromJPEG("".$picture_url."");

if ($img) $imgX = imagesx($img); //Width
if ($img) $imgY = imagesy($img); //Height

//if both sizes equals max-size, print as-is
if($imgX == 640 && $imgY == 480) { $size_controller = "width='".$imgX."' height='".$imgY."'"; }
//if any sizes equals max-size, calculate from paired size
if($imgX == 640 && $imgY <= 480) { $size_controller = "width='640'"; }
if($imgX == 640 && $imgY > 480)  { $size_controller = "height='480'"; }
if($imgY == 480 && $imgX <= 640) { $size_controller = "height='480'"; }
if($imgY == 480 && $imgX > 640) { $size_controller = "width='640'"; }
//if both sizes is smaller than max-sizes, print picture as-is:
if($imgX < 640 && $imgY < 480) { $size_controller = "width='".$imgX."' height='".$imgY."'"; }
//if width is smaller than max size, but height is larger than max size, control by height
if($imgX < 640 && $imgY > 480) { $size_controller = "height='480'"; }
//if width is larger than max size, but height is smaller than max size, control by width
if($imgX > 640 && $imgY < 480) { $size_controller = "width='680'"; }

//if both sizes excess the max-sizes, calculte which size is dominant, use dominant side to determine manipulation on size
if($imgY > 480 && $imgX > 640) { 
	$division = $imgX / $imgY;
	$division = number_format($division, 2);
	if($division == 1.33) {
		$size_controller = "width='640' height='480'";
	} else {
		if($division > 1) {
			$size_controller = "width='640'";
		} else {
			$size_controller = "height='480'";
		}
	}
}

Endret av djus
Lenke til kommentar
Videoannonse
Annonse
Vist du bare trenger høgde og bredde så kan det vere likegreit å bruke getimagesize, da slipper du å opne opp fila med gd først ;)

 

Takk for svar :)

Godt poeng, men jeg har prøvd denne løsningen også! (Burde jeg nevnt i forrige innlegg ;) )

Problemet ligger i at ingen av funksjonene klarer å hente ut bredde og høyde fra noen bilder. Dette virker helt uavhengig av maskin de lastes opp fra, browser som brukes og program de redigeres i...

Noen flere? :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...