Vraag & Antwoord

Webprogrammeren & scripting

[php] code resize image geeft foutmelding

12 antwoorden
  • Hallo allen, Ben bezig met een website en nou heb ik een stukje code, (niet zelfgeschreven) wat een plaatje de juiste proporties moet laten houden. Dat gaat allemaal goed, maar bij de andere afbeeldingen waar het niet hoeft, krijg ik nu nix meer te zien, en krijg ik de volgende foutmelding: [quote:e73d39f1bd]Warning: Division by zero in includes/functions/html_output.php on line 107[/quote:e73d39f1bd] Het stukje code waar het om gaat is deze: [code:1:e73d39f1bd] if (IMAGE_CONSTRAIN_PROPORTIONS == 'true') { $image_size = @getimagesize($src); $ratio = $width / $image_size[0]; if ($image_size[1]*$ratio > $height) { $ratio = $height / $image_size[1]; $width = $image_size[0] * $ratio; } else { $height = $image_size[1] * $ratio; } } [/code:1:e73d39f1bd] en regel 107 is: $ratio = $width / $image_size[0]; Heb al geprobeerd om de 0 in 1 te veranderen, maar dat hielp nix. Dit is onderdeel van een functie met betrekking tot de afbeeldingen, de code hiervan is: [code:1:e73d39f1bd] if ( ($width) && ($height) ) { if (IMAGE_CONSTRAIN_PROPORTIONS == 'true') { $image_size = @getimagesize($src); $ratio = $width / $image_size[0]; if ($image_size[1]*$ratio > $height) { $ratio = $height / $image_size[1]; $width = $image_size[0] * $ratio; } else { $height = $image_size[1] * $ratio; } } $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } [/code:1:e73d39f1bd] Bij voorbaat dank.
  • Je deelt door 0 en iedere wiskundige kan je vertellen dat dat niet mag. Check dus of die "$image_size[0]" toevallig 0 is en sla dan het hele resizen gewoon over...
  • Heb er nu een if-statement tussen gezet om te kijken of $image_size 0 is, en ander moet ie doorgaan met het resize gedeelte. [code:1:8beec4e307] if ( ($width) && ($height) ) { if (IMAGE_CONSTRAIN_PROPORTIONS == 'true') { $image_size = @getimagesize($src); if ($image_size == '0') { $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } else { $ratio = $width / $image_size[0]; if ($image_size[1]*$ratio > $height) { $ratio = $height / $image_size[1]; $width = $image_size[0] * $ratio; } else { $height = $image_size[1] * $ratio; } } } $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } [/code:1:8beec4e307] Krijg nog steeds dezelfde foutmelding. Krijg deze melding ook alleen maar bij de afbeeldingen die 1pixel zijn. De rest van de afbeeldingen geven geen foutmelding.
  • Je moet checken of "$image_size[0]" 0 is, niet of "$image_size" zelf 0 is...
  • Dan krijg ik dus deze code: [code:1:90a0db4ec7] if ( ($width) && ($height) ) { if (IMAGE_CONSTRAIN_PROPORTIONS == 'true') { $image_size = @getimagesize($src); if ($image_size[0] == '0') { $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } else { $ratio = $width / $image_size[0]; if ($image_size[1]*$ratio > $height) { $ratio = $height / $image_size[1]; $width = $image_size[0] * $ratio; } else { $height = $image_size[1] * $ratio; } } } $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } [/code:1:90a0db4ec7] En nog steeds de foutmelding.
  • En als je[code:1:0487688b42]if ($image_size[0] == '0') { [/code:1:0487688b42]vervangt door[code:1:0487688b42]if (!isset($image_size)) { [/code:1:0487688b42]- Bas
  • Of je kan eens checken op de waarde 0 in plaats van de string 0 ('0').
  • Ben nu al wel de waarschuwing kwijt, ben nu alleen ook de scheidingslijnen kwijt. De tip van BasHamar hielp hierbij, dank daarvoor. BillGates, Checken op de waarde nul, dat kan ik gewoon met de volgende code doen, of zit ik dan verkeerd te denken. [code:1:8d30e6f959] if (!$width == '0') { $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } elseif (!$height == '0') { $image .= ' width="' . tep_parse_input_field_data($width, array('"' => '&')) . '" height="' . tep_parse_input_field_data($height, array('"' => '&')) . '"'; } else { [/code:1:8d30e6f959]
  • [quote:500cdab639="arjenv"]Checken op de waarde nul, dat kan ik gewoon met de volgende code doen, of zit ik dan verkeerd te denken.[/quote:500cdab639][quote:500cdab639="Bill Gates"]Of je kan eens checken op de waarde 0 in plaats van de string 0 ('0').[/quote:500cdab639]- Bas
  • Ik heb een vraag die op bovenstaande vraag lijkt. Ik heb hetzelfde probleem met de volgende code: [code:1:16bb7bc20e] <? $image = getimagesize($imagelocation); $imagewidth = $image[0]; $imageheight = $image[1]; echo "image=".$imagelocation."<BR>"; echo "imagesize=".$image."<BR>"; echo "width=".$imagewidth."<BR>"; echo "height=".$imageheight."<BR>"; $verhouding = $imagewidth / $imageheight; ?> [/code:1:16bb7bc20e] Nu geeft getimagesize bij sommige images niets door. Dit vind ik nogal vreemd aangezien hij dit bij de betreffende images wel heeft gedaan en het bij andere images ook nog gewoon doet. Heeft iemand er een verklaring voor? M.v.g StruiS
  • Weet je zeker dat de desbetreffende bestanden bestaan? Onder Linux/Unix zijn bestandsnamen case sensative, dus [i:bda514d568]Plaatje.gif[/i:bda514d568] is een ander bestand dan [i:bda514d568]plaatje.gif[/i:bda514d568] of [i:bda514d568]plaatje.GIF[/i:bda514d568]. Misschien dat dat het is... - Bas
  • [quote:7a8d2b5be9] Weet je zeker dat de desbetreffende bestanden bestaan? Onder Linux/Unix zijn bestandsnamen case sensative, dus Plaatje.gif is een ander bestand dan plaatje.gif of plaatje.GIF. [/quote:7a8d2b5be9] Yep, want als ik het adres in een img tag zet werkt het gewoon, heel vreemd, snap er echt niets van, heb je misschien nog andere ideeën?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.