<?
function IM(){ if (!is_object($GLOBALS['IM'])) $GLOBALS['IM']=new i_IM();return($GLOBALS['IM']);}

class i_IM
{ 
  function __construct()
  {  
  }    
 // преобразуем изображение в заданный тип
 function convert_image_to_jpg($f_source,$f_desc)
 {  $source=$this->open_image($f_source) ;
    $res=$this->put_image_to_jpg($source,$f_desc) ;
    return ;
     $im = new imagick( $f_source);

     // convert to jpg
     $im->setImageColorspace(255);
     $im->setCompression(Imagick::COMPRESSION_JPEG);
     $im->setCompressionQuality(60);
     $im->setImageFormat('jpeg');

     //resize
     $im->resizeImage(100, 100, imagick::FILTER_LANCZOS, 1);

     //write image on server
     $im->writeImage($f_desc);
     $im->clear();
     $im->destroy();

    return($f_desc) ;
 }

 function open_image($fname)
 {   $source=null ;
     $id_type=exif_imagetype($fname) ;
     if (!$id_type) echo '<span class="red">Файл "'.$fname.' не является изображенем. Обработка отменена.<br></span>' ;
     else
     { $source = new Imagick();
       $file_handle_for_viewing_image = fopen($fname, 'a+');
       $source->readImageFile($file_handle_for_viewing_image);
       fclose($file_handle_for_viewing_image);
       if (!$source)
        { echo '<span class="red">Не удалось открыть изображение для обработки. Сохраните изображение в другом формате и попробуйте еще раз.<br></span>' ;
         $source=null ;
        }
     }
     return($source) ;
 }

 function put_image_to_jpg(&$image,$fname)
  { if (is_file($fname)) unlink($fname) ;
    //$image->setImageCompressionQuality(90);
    $image->setBackgroundColor(new ImagickPixel('rgba(190,190,100,255)'));
    $image->setImageFormat('png');
    $image->writeImage($fname);
    $size=(file_exists($fname))? filesize($fname):0 ;
    return($size) ;
  }      
    
}

?>