PHP 비례 스케일링 그림
단계는 다음과 같습니다.
1. 이미지에 대한 기본 정보 얻기
이 getimagesize 함수를 사용하세요
2. 이미지 리소스 유형을 결정하고 해당 이미지 리소스를 생성합니다
이 getPicType 함수(맞춤 함수)를 사용하세요.
3. 배율 비율을 계산하세요
원칙은 가장 작은 배율 인수를 취하는 것입니다. 예를 들어, 800*600 사진이 200*200 미만으로 조정되면 배율은 배율=200/800>200/600?200/600:200/800입니다. 1/4 < ; 1/3이므로 배율을 1/4로 선택하세요
4. 배율을 계산하세요
너비 = 바닥(800*1/4); 내림
높이 = 바닥(600*1/4)
결과적으로 확대된 이미지는 200*150이 됩니다
5. 대상 이미지 리소스를 생성합니다
.
이 imagecreatetruecolor 기능을 사용하여 트루 컬러 이미지를 만드세요
6. 비례적으로 크기 조정
크기 조정을 달성하려면 이 이미지 복사 리샘플링 기능을 사용하세요
7. 출력 이미지
이 outputImage 함수를 사용하세요(맞춤 함수)
8. 이미지 리소스 해제
크기 조정 전후에 표시된 대로 이 이미지 삭제 기능
을 사용하세요.
750*525
200*140
코드는 다음과 같습니다.
<code><span>/** *<span> @function</span> 等比缩放函数(以保存的方式实现) *<span> @param</span> string $picname 被缩放的处理图片源 *<span> @param</span> int $maxX 缩放后图片的最大宽度 *<span> @param</span> int $maxY 缩放后图片的最大高度 *<span> @param</span> string $pre 缩放后图片名的前缀名 *<span> @return</span> string 返回后的图片名称(带路径),如a.jpg --> s_a.jpg */</span><span><span>function</span><span>scalePic</span><span>(<span>$picname</span>,<span>$maxX</span>=<span>100</span>,<span>$maxY</span>=<span>100</span>,<span>$pre</span>=<span>'s_'</span>)</span> {</span><span>$info</span> = getimagesize(<span>$picname</span>); <span>//获取图片的基本信息</span><span>$width</span> = <span>$info</span>[<span>0</span>];<span>//获取宽度</span><span>$height</span> = <span>$info</span>[<span>1</span>];<span>//获取高度</span><span>//判断图片资源类型并创建对应图片资源</span><span>$im</span> = getPicType(<span>$info</span>[<span>2</span>],<span>$picname</span>); <span>//计算缩放比例</span><span>$scale</span> = (<span>$maxX</span>/<span>$width</span>)>(<span>$maxY</span>/<span>$height</span>)?<span>$maxY</span>/<span>$height</span>:<span>$maxX</span>/<span>$width</span>; <span>//计算缩放后的尺寸</span><span>$sWidth</span> = floor(<span>$width</span>*<span>$scale</span>); <span>$sHeight</span> = floor(<span>$height</span>*<span>$scale</span>); <span>//创建目标图像资源</span><span>$nim</span> = imagecreatetruecolor(<span>$sWidth</span>,<span>$sHeight</span>); <span>//等比缩放</span> imagecopyresampled(<span>$nim</span>,<span>$im</span>,<span>0</span>,<span>0</span>,<span>0</span>,<span>0</span>,<span>$sWidth</span>,<span>$sHeight</span>,<span>$width</span>,<span>$height</span>); <span>//输出图像</span><span>$newPicName</span> = outputImage(<span>$picname</span>,<span>$pre</span>,<span>$nim</span>); <span>//释放图片资源</span> imagedestroy(<span>$im</span>); imagedestroy(<span>$nim</span>); <span>return</span><span>$newPicName</span>; } <span>/** * function 判断并返回图片的类型(以资源方式返回) *<span> @param</span> int $type 图片类型 *<span> @param</span> string $picname 图片名字 *<span> @return</span> 返回对应图片资源 */</span><span><span>function</span><span>getPicType</span><span>(<span>$type</span>,<span>$picname</span>)</span> {</span><span>$im</span>=<span>null</span>; <span>switch</span>(<span>$type</span>) { <span>case</span><span>1</span>: <span>//GIF</span><span>$im</span> = imagecreatefromgif(<span>$picname</span>); <span>break</span>; <span>case</span><span>2</span>: <span>//JPG</span><span>$im</span> = imagecreatefromjpeg(<span>$picname</span>); <span>break</span>; <span>case</span><span>3</span>: <span>//PNG</span><span>$im</span> = imagecreatefrompng(<span>$picname</span>); <span>break</span>; <span>case</span><span>4</span>: <span>//BMP</span><span>$im</span> = imagecreatefromwbmp(<span>$picname</span>); <span>break</span>; <span>default</span>: <span>die</span>(<span>"不认识图片类型"</span>); <span>break</span>; } <span>return</span><span>$im</span>; } <span>/** * function 输出图像 *<span> @param</span> string $picname 图片名字 *<span> @param</span> string $pre 新图片名前缀 *<span> @param</span> resourse $nim 要输出的图像资源 *<span> @return</span> 返回新的图片名 */</span><span><span>function</span><span>outputImage</span><span>(<span>$picname</span>,<span>$pre</span>,<span>$nim</span>)</span> {</span><span>$info</span> = getimagesize(<span>$picname</span>); <span>$picInfo</span> = pathInfo(<span>$picname</span>); <span>$newPicName</span> = <span>$picInfo</span>[<span>'dirname'</span>].<span>'/'</span>.<span>$pre</span>.<span>$picInfo</span>[<span>'basename'</span>];<span>//输出文件的路径</span><span>switch</span>(<span>$info</span>[<span>2</span>]) { <span>case</span><span>1</span>: imagegif(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; <span>case</span><span>2</span>: imagejpeg(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; <span>case</span><span>3</span>: imagepng(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; <span>case</span><span>4</span>: imagewbmp(<span>$nim</span>,<span>$newPicName</span>); <span>break</span>; } <span>return</span><span>$newPicName</span>; }</code>
위 내용은 내용의 측면을 포함하여 그림의 PHP 비례 스케일링을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 사이트는 6월 2일 진행 중인 Huang Jen-Hsun 2024 타이페이 컴퓨터 쇼 기조 연설에서 Huang Jen-Hsun이 생성 인공 지능이 전체 소프트웨어 스택의 재구성을 촉진할 것이라고 소개하고 NIM(Nvidia Inference Microservices) 클라우드를 시연했다고 보도했습니다. 네이티브 마이크로서비스. NVIDIA는 "AI 공장"이 새로운 산업 혁명을 일으킬 것이라고 믿습니다. Huang Renxun은 Microsoft가 개척한 소프트웨어 산업을 예로 들어 생성 인공 지능이 전체 스택 재편을 촉진할 것이라고 믿습니다. 모든 규모의 기업이 AI 서비스를 쉽게 배포할 수 있도록 NVIDIA는 올해 3월 NIM(Nvidia Inference Microservices) 클라우드 네이티브 마이크로서비스를 출시했습니다. NIM+는 출시 시간을 단축하도록 최적화된 클라우드 기반 마이크로서비스 제품군입니다.

PHP에서는 여러 분기를 선택하기 위해 switch 문을 사용하는 것이 매우 일반적입니다. 일반적으로 break 문은 각 분기 후에 스위치 문을 종료하는 데 사용됩니다. 하지만, break 문을 사용하고 싶지 않은 상황이 있습니다. 이 글에서는 PHP switch 문에서 break 문을 사용하지 않는 상황을 소개하겠습니다.

PHP에서 break는 현재 구문 구조에서 벗어나 다음 명령문을 실행하는 데 사용됩니다. 이는 switch, for, while 및 do while과 같은 명령문에서 사용할 수 있으며 루프 본문의 코드를 종료하고 점프할 수 있습니다. 현재 루프를 즉시 실행하고 루프 코드 다음에 다음 명령문을 실행합니다. break 문은 루프에서 점프할 레벨 수를 나타내는 매개변수 n을 사용할 수 있습니다. 여러 루프에서 점프하려는 경우, 루프에서 점프할 레벨 수를 나타내기 위해 n을 사용할 수 있습니다. 매개변수에서 기본값은 현재 루프에서 점프하는 것입니다.

이전 기사에서는 JS의 여러 루프 제어 구조(while 및 do-while 루프, for 루프)에 대해 알아보았습니다. 루프에서 벗어나는 데 도움이 되기를 바랍니다. 모든 사람!

참고 1. Break의 기능은 현재 루프 블록(for, while, dowhile) 또는 프로그램 블록(switch)에서 점프하는 것입니다. 2. 루프 블록의 기능은 현재 루프에 있는 루프 본체에서 점프하는 것입니다. 프로그램 블록의 기능은 다음 케이스 조건을 중단하고 비교하는 것입니다. switch 문을 종료하려면 switch 문에 break를 사용하세요. break가 루프에서 사용되면 루프에서 빠져 나옵니다. 다른 곳에서 break를 사용하는 것은 의미가 없습니다. 예 intsum=0;inti;for(i=1;i

Go 언어에서는 break stop 문을 사용하여 루프 문에서 루프 밖으로 점프하고 루프 이후 문 실행을 시작합니다. break 문은 for, switch 및 select의 코드 블록을 끝낼 수 있습니다. 또한 break 문은 특정 레이블에 해당하는 코드 블록 종료를 나타내기 위해 명령문 뒤에 레이블을 추가할 수도 있습니다. for, 스위치 및 선택의 코드 블록입니다.

Linux param은 명령줄 매개변수를 전달하는 데 사용되는 "module_param" 함수를 참조합니다. 사용자 모드에서 프로그래밍할 때 명령줄 매개변수는 "main()"의 매개변수를 통해 전달될 수 있으며, 커널 모듈을 작성할 때는 " module_param()"을 사용하여 매개변수를 전달합니다.

PHP에서 break문의 역할과 주의사항 PHP 프로그래밍에서 break문은 루프나 스위치문의 실행을 중단시키는 제어문이다. break 문은 현재 루프나 스위치 문에서 즉시 점프할 수 있어 프로그램 실행 흐름이 루프나 스위치 문 뒤의 코드 부분으로 직접 점프할 수 있으므로 프로그램 실행의 효율성과 유연성이 향상됩니다. 실제 프로그래밍에서는 break 문이 중요한 역할을 하지만, 몇 가지 세부사항과 주의사항에도 주의가 필요합니다. 1.b
