이용안내

이곳은 자유게시판입니다. 어떠한 글도 좋으나 광고, 비방, 욕설 등은
경고없이 삭제하겠습니다. 또한 넷티켓을 지켜주시기 바랍니다.

가로세로 비율틀려지지 않고 크기에 맞는 썸네일 만들기

출처 – phpschool.com

이런게 필요해서 검색해봤더니 가로세로 비율 유지하면서 만드는거나, 무조건 크롭시키는 소스는 있는데 알맞는 크기로 비율을 유지하며 만드는건 없더군요.. 하나 있긴 했는데 리눅스 명령을 사용하는거라서 이식성부족했구요..
그냥 gd만을 이용해서 썸네일을 만들어주는 함수입니다.
600×400 이미지를 300×200 으로 만들라고 하면 당연히 비율에 맞게 줄여지겠지만 400×600이미지를 300×200으로 만들라고 하면 3/4 비율로 줄인후 세로를 가운데를 중심으로 crop 시켜줍니다.
이미지에서 중요한 부분은 가운데쪽에 있을꺼같아서 가운데를 중심으로 양쪽 또는 위아래를 잘라내도록 했습니다. 특별한 기술이라기 보다 이런걸 찾는분들 쉽게 찾으시라고 올려드립니다.. 검색에 잘 걸리게 키워드도 넣어두지요. ㅎㅎ

사용법은 thumbnail(파일명,x사이즈,y사이즈) 입니다.
그럼 소스 갑니다.
/****************************************************************************
* thumbnail.lib.php
* 가로세로 비율이 흐트러지지 않고 지정한 크기로 썸네일을 만들어줌
* 2002.2.18 – 거친마루
*****************************************************************************/

## Image LoadJpeg (String $fName);
function LoadImage ($fName) {
$file_ext = strtolower(substr(strrchr($fName,”.”), 1)); //확장자
switch ($file_ext) {
case “jpg”: case “jpeg”:
$im = @ImageCreateFromJPEG ($fName);
break;
case “gif”:
$im = @ImageCreateFromGIF ($fName);
break;
case “png”:
$im = @ImageCreateFromPNG ($fName);
break;
}

if (!$im) {
$im = ImageCreate (150, 30);
$bgc = ImageColorAllocate ($im, 255, 255, 255);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);
ImageString ($im, 1, 5, 5, “Error loading $fName”, $tc);
}
return $im;
}

## Image thumbnail_jpg(String $filepath, int $width, int $height);
function thumbnail ($filepath,$width=””,$height=””) {
$size=getimagesize($filepath); //원본 이미지사이즈를 구함
$shr_rateX = $width / $size[0];
$shr_rateY = $height / $size[1];
$base = ($shr_rateX <= $shr_rateY) ? "y" : "x";
$src_im=LoadImage($filepath);
if($base == “y”) {
$new_width=round(($size[0] * $height)/$size[1]); // (가로크기 * 새로운 세로 크기) / 세로크기
$offsetX = round(($new_width – $width) / 2); //각각 좌우로 잘라낼 길이
$offsetY = 0;
}
if($base == “x”) {
$size=getimagesize($filepath); //원본 이미지 사이즈 구함
$new_height=round(($size[1] * $width)/$size[0]); // (세로크기 * 새로운 가로크기) / 가로크기
$offsetX = 0;
$offsetY = round(($new_height – $height) / 2); // 각각 상하로 잘라낼 길이
}

$dst_im=ImageCreate($width,$height); //결과물 이미지 생성
ImageCopyResized($dst_im,$src_im,0,0,$offsetX,$offsetY,$width,$height,ImageSX($src_im)-$offsetX,ImageSY($src_im)-$offsetY); //만들기
return $dst_im;
}

?>

무소음 리눅스라우터 제작 및 사용기

준비물 : 펜티엄 100 (메모리 32M) 컴퓨터
– 작업후 빼도 상관없는 것 : 하드디스크, CD-ROM, 모니터, 키보드

랜카드 2장(리얼텍 8139 PCI, 3COM 3C509 ISA), 코요테 리눅스

코요테 리눅스 작업부분은 생략 (http://my.dreamwiz.com/koko114/menu/menu1.htm 참고)

작업하면서 CMOS 부분 에러발생시 컴퓨터가 멈춤으로 설정되어 있는 부분을 NO ERROR로 바꾸면 하드디스크, 시디롬, 키보드 등등 없어도 에러가 나지 않고 부팅 된다.

사진에서처럼 메인보드(시피유 쿨러도 멈춘 상태)에 FDD와 랜카드 2개, 그래픽 카드만 연결되어 있어도 된다.
zz22

파워서플라이도 분해해서 쿨링팬을 제거하고 누드상태로 놔눴다.(무소음 구현때문이고 열 발산을 위해)

한통 외장형 모뎀으로 가는 랜선을 8139에 꽂고 3COM 랜카드에서는 5포트 더미허브의 UPLINK 포트로 연결, 현재 펜티엄 III 667 1대, 펜티엄 MMX 200 1대, 삼성노트북 MMX 266 1대, 총 3대의 컴퓨터를 연결하여 사용하고 있다.

한통 ADSL 라이트 사용중, 보통 1.7M의 다운로드 속도를 유지중..
현재 구루구루를 위한 아이피 포워딩만 적용하여 사용중입니다.