2012-03-18 2 views
0

Так что я хочу взять квадратное изображение и изменить его размер до 300 пикселей * 400 пикселей (например).Изменить размер изображения (image_lib), сохранить пропорции, но масштабировать до наименьшего возможного, чтобы ПРЕВЫШАТЬ ширину и высоту

Я хочу сохранить соотношение сторон, но так, чтобы изображение превышало или соответствовало обоим измерениям. Таким образом, в случае квадратного исходного изображения получившееся изображение будет 400px * 400px.

Это имеет смысл? Я хочу это, потому что тогда я продолжу обрезать изображение точно 300px * 400px.

$config['maintain_ratio'] = false; искажает изображение.

Благодарим вас за просвещение.

ответ

2

Попробуйте это .... Это поможет ..

if(file_exists('test.jpg')) 
     unlink('test.jpg'); 

     $dest='test.jpg'; 


    $image='fg.jpg'; 

$list=getimagesize($image); 
$width=$list[0]; 
    $height=$list[1]; 


    $newwidth=65; 
    $newheight=95; 



    $int_x=10; 
$int_y=0; 




define('DESIRED_IMAGE_WIDTH', 65); 
define('DESIRED_IMAGE_HEIGHT', 95); 
$source_gdim = imagecreatefromjpeg($image); 

$source_aspect_ratio = $width/$height; 
$desired_aspect_ratio = DESIRED_IMAGE_WIDTH/DESIRED_IMAGE_HEIGHT; 

// For Wide Image 
if ($source_aspect_ratio > $desired_aspect_ratio) 
    { 
$temp_height = DESIRED_IMAGE_HEIGHT; 
$temp_width = (int) (DESIRED_IMAGE_HEIGHT * $source_aspect_ratio); 
    } 
    // For Tall Image 
else 
    { 
    $temp_width = DESIRED_IMAGE_WIDTH; 
    $temp_height = (int) (DESIRED_IMAGE_WIDTH/$source_aspect_ratio); 
    } 


    $temp_gdim = imagecreatetruecolor($temp_width, $temp_height); 
    imagecopyresampled($temp_gdim,$source_gdim,0, 0,0, 0,$temp_width, $temp_height,$width, $height); 


$x0 = ($temp_width - DESIRED_IMAGE_WIDTH)/2; 
    $y0 = ($temp_height - DESIRED_IMAGE_HEIGHT)/2; 

    $desired_gdim = imagecreatetruecolor(DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT); 
    imagecopy($desired_gdim,$temp_gdim,0, 0,$x0, $y0,DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT); 


     imagejpeg($desired_gdim,'test.jpg',100); 
+1

Привет, спасибо за это. Это не специфический для кодогенератора, но я думаю, что я могу использовать некоторые из вашего кода, чтобы изменить размер моего изображения на определенные размеры, а затем урожай. :) Спасибо приятель. –