PHP에서 HTML문서를 만들 때 attribute를 이용해서 연결할 이미지의 크기를 지정할 수 있지만 특정 메일 Client 프로그램에서 관련 html tag를 제대로 처리하지 못해서 HTML문서의 레이아웃이 틀어지는 경우를 자주 보게된다.

이런 경우의 해법은 이미지 사이즈를 HTML 문서의 폭과 동일하게 맞추어주는 것이다.

사람이 일일이 수동으로 처리할 수 있지만 반복적인 작업이 필요한 경우라면 PHP 코드내에서 자동으로 처리하는 것이 효과적이다.

이 작업을 위해서 크게 다음과 같은 접근을 하였다.

  1. 이미지 사이즈 변경을 하는 linux command를 확인한다.
  2. 변경할 사이즈, 입력 이미지 파일명, 결과 이미지 파일명을 인자로 linux command를 수행할 shell script를 작성한다.
  3. 필요할 때마다, PHP 코드에서 shell script를 호출한다.

이미지 사이즈 변경 linux command

convert -resize size-info src-file dest-file

Shell script 작성

resizeimage.sh 파일을 생성하고 아래와 같은 입력한다.

#!/bin/bash

sourcefile=$1;
destfile=$2;

echo $sourcefile;
echo $destfile;

convert -resize $1 $2 $3;

echo $errormessage;

PHP에서 shell script 호출하기

PHP로 아래와 같이 shell script를 호출할 함수를 작성한다.

function resizeimage($imagesize, $sourcefile, $destfile){

$command = “/home/user1/resizeimage.sh “;
$command = $command.$imagesize.” “;
$command = $command.$sourcefile;
$command = $command.” “;
$command = $command.$destfile;

$output = shell_exec($command);
}

PHP 코드내에서 이미지 크기 변경이 필요할 때마다 resizeimage() 함수를 호출하기만 하면 된다.

Advertisements