PHP 사용자 정의 그림 크기 조정 함수 구현 등 비례 일 그 러 짐 없 이 크기 조정 하 는 방법
function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)
{
$pic_width = imagesx($im);
$pic_height = imagesy($im);
if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight))
{
if($maxwidth && $pic_width>$maxwidth)
{
$widthratio = $maxwidth/$pic_width;
$resizewidth_tag = true;
}
if($maxheight && $pic_height>$maxheight)
{
$heightratio = $maxheight/$pic_height;
$resizeheight_tag = true;
}
if($resizewidth_tag && $resizeheight_tag)
{
if($widthratio<$heightratio)
$ratio = $widthratio;
else
$ratio = $heightratio;
}
if($resizewidth_tag && !$resizeheight_tag)
$ratio = $widthratio;
if($resizeheight_tag && !$resizewidth_tag)
$ratio = $heightratio;
$newwidth = $pic_width * $ratio;
$newheight = $pic_height * $ratio;
if(function_exists("imagecopyresampled"))
{
$newim = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
}
else
{
$newim = imagecreate($newwidth,$newheight);
imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
}
$name = $name.$filetype;
imagejpeg($newim,$name);
imagedestroy($newim);
}
else
{
$name = $name.$filetype;
imagejpeg($im,$name);
}
}
매개 변수 설명:$im 그림 대상,함 수 를 적용 하기 전에 이미지 createfromjpeg()로 그림 대상 을 읽 어야 합 니 다.만약 PHP 환경 이 PNG,GIF 를 지원 한다 면 이미지 createfromgif(),이미지 createfrompng()를 사용 할 수도 있 습 니 다.
$maxwidth 는 그림 을 만 드 는 최대 너비(단위:픽 셀)를 정의 합 니 다.
$maxheight 그림 생 성 최대 높이(단위:픽 셀)
$name 생 성 된 그림 이름
$filetype 최종 생 성 된 그림 형식(.jpg/.png/.gif)
코드 설명:
3~4 줄:크기 조정 이 필요 한 그림 의 실제 너비 읽 기
8~26 줄:실제 그림 의 너비 와 그림 을 생 성 해 야 하 는 너비 와 높이 의 압축 비율 을 계산 한 결과 그림 크기 를 너비 나 높이 에 따라 조정 하 는 지,현재 프로그램 은 너비 에 따라 그림 크기 를 조정 하 는 지 알 수 있 습 니 다.높이 에 따라 그림 크기 를 조정 하려 면 22 줄 의 문 구 를$widthratio>$heightratio 로 변경 할 수 있 습 니 다.
28~31 줄:실제 그림 의 길이 나 너비 가 규정된 그림 의 길이 나 너비 보다 작 으 면 길이 에 따라 그림 크기 를 조정 하거나 너비 에 따라 그림 크기 를 조정 합 니 다.
33~34 줄:최종 크기 조정 으로 생 성 된 그림 의 길 이 를 계산 합 니 다.
36~45 번 째 줄:계 산 된 최종 생 성 된 그림 의 길이 와 너비 에 따라 그림 크기 를 바 꾸 는 방법 은 두 가지 가 있 습 니 다.ImageCopyResized()함 수 는 모든 GD 버 전에 서 유효 하지만 그림 크기 를 조정 하 는 알고리즘 은 거 칠 습 니 다.ImageCopyResamples()는 픽 셀 플러그 인 알고리즘 이 얻 은 이미지 가장자리 가 부 드 럽 지만 이 함수 의 속 도 는 ImageCopyResized()보다 느 립 니 다.
47~49 줄:처 리 된 그림 을 최종 적 으로 생 성 합 니 다.GIF 나 PNG 를 생 성 하려 면 imagejpeg()함 수 를 imagegif()또는 imagepng()로 바 꿔 야 합 니 다.
51~56 줄:실제 그림 의 길이 가 정 해진 그림 의 너비 보다 작 으 면 그림 의 원형 을 유지 합 니 다.마찬가지 로 GIF 나 PNG 를 생 성 하려 면 imagejpeg()함 수 를 imagegif()또는 imagepng()로 바 꿔 야 합 니 다.
특별 설명:
GD 라 이브 러 리 1.6.2 버 전 은 이전 에는 GIF 포맷 을 지 원 했 지만,GIF 포맷 의 LZW 알고리즘 사용 이 특허권 에 연 관 돼 있어 GD 1.6.2 버 전 이후 에는 GIF 포맷 을 지원 하지 않 는 다.WINDOWS 환경 이 라면 PHP.INI 파일 에 들 어가 서 extension=php 를 찾 으 면 됩 니 다.gd2.dll,\#를 제거 하고 APACHE 를 다시 시작 하면 됩 니 다.리 눅 스 환경 이 라면 GIF,PNG,JPEG 를 지원 하려 면 libpng,zlib,freetype 글꼴 을 다운로드 하고 설치 해 야 합 니 다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.