Help a newbie, please. In general, in short, the User adds a photo and I try to crop it with a width of 1050 while maintaining the proportions. But the getimagesize function returns the error "getimagesize (temp / maxresdefault.jpg): failed to open stream: Invalid argument in ..". I took the function from the example on the Internet. According to Google, I did not find what this error means.

function crop($url, $x_o, $y_o, $w_o, $h_o) { if (($x_o < 0) || ($y_o < 0) || ($w_o < 0) || ($h_o < 0)) { echo "НСкоррСктныС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹"; return false; } if (($w_o < 500) || ($h_o < 500)){ echo "Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎ слишком ΠΌΠ°Π»ΠΎ"; } list($w_i, $h_i, $type) = getimagesize($url); // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ‚ΠΈΠΏ изобраТСния (число) $types = array("jpg", "gif", "jpeg", "png"); // Массив с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ $ext = $types[$type]; // Зная "числовой" Ρ‚ΠΈΠΏ изобраТСния, ΡƒΠ·Π½Π°Ρ‘ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° if ($ext) { $func = 'imagecreatefrom'.$ext; // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚ΠΈΠΏΡƒ, для создания изобраТСния $img_i = $func($url); // Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ дСскриптор для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с исходным ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ } else { echo 'НСкоррСктноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅'; // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ изобраТСния нСдопустимый echo $url; // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ изобраТСния нСдопустимый return false; } if ($x_o + $w_o > $w_i) $w_o = $w_i - $x_o; // Если ΡˆΠΈΡ€ΠΈΠ½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния большС исходного (с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ x_o), Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ Π΅Ρ‘ if ($y_o + $h_o > $h_i) $h_o = $h_i - $y_o; // Если высота Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния большС исходного (с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ y_o), Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ Π΅Ρ‘ $img_o = imagecreatetruecolor($w_o, $h_o); // Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ дСскриптор для Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния imagecopy($img_o, $img_i, 0, 0, $x_o, $y_o, $w_o, $h_o); // ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌ Ρ‡Π°ΡΡ‚ΡŒ изобраТСния ΠΈΠ· исходного Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ $func = 'image'.$ext; // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ функция для сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° return $func($img_o, $url); // БохраняСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎ ΠΈ исходноС, возвращая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ 

}

  • one
    The function cannot find the file. temp / maxresdefault.jpg is NOT a temporary file - DaemonHK
  • Thanks, it helped) - Denis

0