The following problem arose when working with images: images in the png format are not reduced or saved, and jpeg files are reduced and saved normally. I tried to forcibly change the extension in the file name to jpeg - it did not help, the pictures all the same do not want to be preserved and reduced. Maybe someone faced this problem?
GD Support enabled GD Version bundled (2.0.34 compatible) JPG Support enabled PNG Support enabled
The handler itself is as follows:
# ΠΏΡΡΡ ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ $source_src = 'ΠΏΡΡΡ Π΄ΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ'; # ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (Π²ΡΡΠΎΡΠ°/ΡΠΈΡΠΈΠ½Π°, ΡΠΈΠΏ ΠΈ Ρ.ΠΏ.) # ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ $params = getimagesize($source_src); # Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ # ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ # ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ $format = strtolower(substr($params['mime'], strpos($params['mime'], '/')+1)); $icfunc = "imagecreatefrom" . $format; $source = $icfunc($source_src); # ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ # (ΠΏΠΎ ΡΠΈΡΠΈΠ½Π΅/Π²ΡΡΠΎΡΠ΅) ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ $max_size = 190; # Π΅ΡΠ»ΠΈ ΡΠΈΡΠΈΠ½Π° ΠΈΠ»ΠΈ Π²ΡΡΠΎΡΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ # Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ if ( $params[0]>$max_size || $params[1]>$max_size ) { # Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅Π΅: ΡΠΈΡΠΈΠ½Ρ ΠΈΠ»ΠΈ Π²ΡΡΠΎΡΠ° # ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ if ( $params[0]>$params[1] ) $size = $params[0]; # ΡΠΈΡΠΈΠ½Π° else $size = $params[1]; # Π²ΡΡΠΎΡΠ° # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅Ρ
ΠΈΡΡΡΡ ΠΏΡΠΎΠΏΠΎΡΡΠΈΡ Π²ΡΡΠΈΡΠ»ΡΠΌ # ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ $nsize=getNewSize('ΠΏΡΡΡ Π΄ΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ',190,300); $resource_width = $nsize['w']; $resource_height = $nsize['h']; $resource = imagecreatetruecolor($resource_width, $resource_height); // ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Β«ΠΏΠΎΠ΄ΠΊΠ»Π°Π΄ΠΊΠΈΒ» # ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Β«ΠΏΠΎΠ΄ΠΊΠ»Π°Π΄ΠΊΡΒ» imagecopyresampled($resource, $source, 0, 0, 0, 0, $nsize['w'], $nsize['h'], $params[0], $params[1]); } # Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ # $resource ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ else $resource = $source; //$end = end(explode('.', $picurl)); $end = 'jpeg'; imagejpeg($resource, 'Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ'.'.$end, 100); imagedestroy($resource);
The script was taken from the public, the jipeg is processing normally, but for some reason it does not want a png ...