使用PHP缩略图跟剪切图
使用PHP缩略图和剪切图
API:
resource imagecreatetruecolor ( int $width , int $height )
magecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。
是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在,但是在没有安装 GD2 的时候调用,PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。
bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )
imagejpeg() 从 image 图像以 filename 为文件名创建一个 JPEG 图像。
ool imagedestroy ( resource $image )
imagedestroy() 释放与 image 关联的内存。image 是由图像创建函数返回的图像标识符,例如 imagecreatetruecolor()。
http://www.cnblogs.com/xiaomia/archive/2010/11/13/1876191.html
一开始采用了 imagecopyresized 方法进行图像等比缩小,实际操作后发现,图像缩小后燥点非常严重。后再换用 imagecopysampled 方法,该方法会对图像进行重新采样,对缩小的图像进行平滑处理,使清晰度得到很大提高
list($src_w,$src_h)=getimagesize($src_img); // 获取原图尺寸 $dst_scale = $dst_h/$dst_w; //目标图像长宽比 $src_scale = $src_h/$src_w; // 原图长宽比 if($src_scale>=$dst_scale){ // 过高 $w = intval($src_w); $h = intval($dst_scale*$w); $x = 0; $y = ($src_h - $h)/3; } else{ // 过宽 $h = intval($src_h); $w = intval($h/$dst_scale); $x = ($src_w - $w)/2; $y = 0; } // 剪裁 $source=imagecreatefromjpeg($src_img); $croped=imagecreatetruecolor($w, $h); imagecopy($croped,$source,0,0,$x,$y,$src_w,$src_h); // 缩放 $scale = $dst_w/$w; $target = imagecreatetruecolor($dst_w, $dst_h); $final_w = intval($w*$scale); $final_h = intval($h*$scale); imagecopyresampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h); // 保存 $timestamp = time(); imagejpeg($target, "$timestamp.jpg"); imagedestroy($target);
http://www.cnblogs.com/analyzer/articles/1267017.html
先说说缩略图,它用得比较多,代码如下:
<?php header("Content-type: image/png"); //原图 $filename='source.jpg'; //缩放比例 新图/原图 $percent = '0.5'; list($width,$height) = getimagesize($filename); $newwidth = $width * $percent; $newheight = $height * $percent; // Load $thumb = imagecreatetruecolor($newwidth, $newheight); $source = imagecreatefromjpeg($filename); // Resize imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); // Output imagepng($thumb); ?>
再说说剪切图,就是不缩放,而是从原图中剪切出一块小图,比较个性。代码如下:
<?php $maxW=300; $maxH=300; //图片路径 $link= "big.jpg"; $img = imagecreatefromjpeg($link); list($width, $height, $type, $attr) = getimagesize($link); $widthnum=ceil($width/$maxW); $heightnum=ceil($height/$maxH); $iOut = imagecreatetruecolor ($maxW,$maxH); //bool imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h ) //将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。 //整图循环切割 for ($i=0;$i < $heightnum;$i++) { for ($j=0;$j < $widthnum;$j++) { imagecopy($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分 imagejpeg($iOut,"images/".$i."_".$j.".jpg"); //输出成0_0.jpg,0_1.jpg这样的格式 } } //只剪切一个开始部位的小图.复制图片的一部分 imagecopy($iOut,$img,0,0,0,0,$maxW,$maxH); imagejpeg($iOut,"images/sm.jpg"); ?>

핫 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)

뜨거운 주제











src와 href는 각각 1. src는 source의 약자로 외부 리소스의 경로를 지정하는 데 사용되며 일반적으로 사진, 오디오, 비디오 등 외부 파일을 삽입하는 데 사용됩니다. src 속성은 일반적으로 img, script, iframe 및 기타 태그에 사용됩니다. 2. href는 하이퍼링크의 대상 리소스 경로를 지정하는 데 사용되는 하이퍼텍스트 참조입니다. 일반적으로 외부 문서나 다른 페이지에 연결하는 데 사용됩니다. href 속성은 일반적으로 a 및 link와 같은 태그에 사용됩니다.

PHP에서 int형을 byte로 변환하는 방법에 대한 자세한 설명 PHP에서는 네트워크 데이터 전송이나 파일 처리, 암호화 알고리즘 등을 다룰 때 정수형(int)을 byte(byte)형으로 변환해야 하는 경우가 많습니다. . 이번 글에서는 int형을 byte형으로 변환하는 방법을 자세히 소개하고 구체적인 코드 예시를 제공하겠습니다. 1. int형과 byte의 관계 컴퓨터 분야에서 기본 데이터형 int는 정수를 나타내고, byte(바이트)는 컴퓨터 저장 단위로 보통 8비트 바이너리 데이터이다.

C++에서 int 유형의 변수는 양수 또는 음수 정수 값만 보유할 수 있으며 소수 값은 보유할 수 없습니다. 이를 위해 float 및 double 값을 사용할 수 있습니다. double 데이터형은 소수점 이하 7자리까지 소수점 이하 자릿수를 저장하기 위해 만들어졌습니다. 정수를 double 데이터 형식으로 변환하는 것은 컴파일러에 의해 자동으로 수행되거나("암시적" 변환이라고 함) 프로그래머가 컴파일러에서 명시적으로 요청할 수 있습니다("명시적" 변환이라고 함). 다음 섹션에서는 다양한 변환 방법을 다룹니다. 암시적 변환 컴파일러는 암시적 유형 변환을 자동으로 수행합니다. 이를 달성하려면 부동 소수점 유형과 정수 유형의 두 가지 변수가 필요합니다. 단순히 부동 소수점 값이나 변수를 정수 변수에 할당하면 컴파일러가 다른 모든 사항을 처리합니다.

int32의 값 범위는 -2의 31승부터 2의 31승 - 1, 즉 -2147483648부터 2147483647까지입니다. int32는 부호 있는 정수 유형입니다. 즉, 양수, 음수 및 0을 나타낼 수 있습니다. 1비트를 사용하여 부호 비트를 나타내고 나머지 31비트는 숫자 값을 나타내는 데 사용됩니다. 부호비트를 표현하는데 1비트가 사용되므로 int32비트의 유효수는 31이다.

int 유형이 차지하는 바이트 수는 프로그래밍 언어 및 하드웨어 플랫폼에 따라 다를 수 있습니다. 자세한 소개: 1. C 언어에서 int 유형은 일반적으로 2바이트 또는 4바이트를 차지합니다. 32비트 시스템에서는 int 유형이 4바이트를 차지하고, 16비트 시스템에서는 int 유형이 2바이트를 차지합니다. 64비트 시스템에서 int 유형은 8바이트를 차지할 수 있습니다. 2. Java에서는 int 유형이 일반적으로 4바이트를 차지하는 반면, Python에서는 int 유형에 바이트 제한이 없으며 자동으로 조정될 수 있습니다.

변환 방법: 1. Itoa() 함수를 사용하여 "strconv.Itoa(num)" 구문을 사용합니다. 2. FormatInt() 함수를 사용하여 int 형식의 데이터를 지정된 베이스로 변환하고 문자열 형식으로 반환합니다. 구문 "strconv .FormatInt(num,10)".

Java에서 int는 32비트 부호 있는 데이터 유형이고 해당 변수에는 32비트 메모리가 필요합니다. int 데이터 유형의 유효한 범위는 -2147483648에서 2147483647이며 이 범위의 모든 정수를 정수 리터럴이라고 합니다. 정수 리터럴은 "int num1 = 21;"과 같이 int 변수에 할당될 수 있습니다.

문자열을 int 유형으로 변환하는 방법: 1. 내장 함수 int()를 사용합니다. 2. 예외를 처리하려면 try-Exception을 사용합니다.
