Home Backend Development PHP Tutorial PHP crop image into fixed size code method

PHP crop image into fixed size code method

Jul 29, 2016 am 08:40 AM
img new

When making a home page call image, sometimes it is necessary to obtain a fixed size image, because the image position of the home page is usually specified by the designer. If it is to call the latest release image, because it is not known what proportion of the image the customer will upload, so, Sometimes there is no way to determine the proportion of the image. Front-end page writers usually use a method of fixing the height and width of the img element to control the image from overflowing. However, if the proportion of the image is not the required proportion, it will cause the image to be deformed after being called. It greatly affects the beauty of the page. One solution is to scale it according to the proportion of the original image. The scaled image will inevitably have blank spaces. Fill the blank spaces with color. In this way, although the image will not be deformed, there will be a lot of distortion. Problem, for example, if the user sends an image that is very tall but has an average width, and if it is compressed into a 1:1 image, then the image will basically not be visible after compression.
My solution here is to crop any image to a fixed size, the image will not be deformed, and the blank space will be stretched and filled. The image will always be filled with no blank space. Friends who have used bcastr should know that bcastr ensures that the image is not called. Deformation, for a fixed-size output image frame, the source image has the following situations:
1: The height and width of the image to be output are smaller than the height and width of the source image, written as judgment $new_width<$src_width && $new_height<$ src_width
2: The height and width of the image to be output are larger than the height and width of the original image, written as judgment $new_width>$src_width && $new_height>$src_width
3: Exclude the first and second types, that is, zoom in while zooming out The situation plus the judgment of equality
For 1, 2, the function processing code is exactly the same, so it can be summarized into a processing statement
The PHP implementation code is given

Copy the code The code is as follows:


/*
*Description: The function is to crop an image to an image of any size without deforming the image
* Parameter description: Enter the file name of the image to be processed, and generate the save file name of the new image. Generate the width of a new image and the height of a new image
* written by smallchicken
* time 2008-12-18
*/
// Get an image of any size, stretch the missing parts, no deformation, no blank space
function my_image_resize($src_file, $dst_file , $new_width , $new_height) {
if($new_width <1 || $new_height <1) {
echo "params width or height error !";
exit();
}
if(!file_exists($src_file)) {
echo $src_file . " is not exists !";
exit();
}
// Image type
$type=exif_imagetype($src_file);
$support_type=array (IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF);
if(!in_array($type, $support_type,true)) {
echo "this type of image does not support! only support jpg , gif or png";
exit();
}
//Load image
switch($type) {
case IMAGETYPE_JPEG :
$src_img=imagecreatefromjpeg($src_file);
break;
case IMAGETYPE_PNG :
$src_img=imagecreatefrompng($src_file);
break;
case IMAGETYPE_GIF :
$src_img=imagecreatefromgif($src_file);
break;
default:
echo "Load image error!";
exit();
}
$w=imagesx($src_img);
$h=imagesy($ src_img);
$ratio_w=1.0 * $new_width / $w;
$ratio_h=1.0 * $new_height / $h;
$ratio=1.0;
// The height and width of the generated image are smaller than the original, or both Large, the principle is to use a large ratio to enlarge, and use a large ratio to reduce (the reduced ratio will be smaller)
if( ($ratio_w < 1 && $ratio_h < 1) || ($ratio_w > 1 && $ratio_h > ; 1)) {
if($ratio_w < $ratio_h) {
$ratio = $ratio_h ; // Case 1, the width ratio is smaller than the height direction, crop or enlarge according to the height ratio standard
}else {
$ratio = $ratio_w ;
}
// Define an intermediate temporary image whose aspect ratio just meets the target requirements
$inter_w=(int)($new_width / $ratio);
$inter_h=(int ) ($new_height / $ratio);
$inter_img=imagecreatetruecolor($inter_w , $inter_h);
imagecopy($inter_img, $src_img, 0,0,0,0,$inter_w,$inter_h);
// Generate A temporary image with the maximum side length as the size of the target image $ratio
// Define a new image
$new_img=imagecreatetruecolor($new_width,$new_height);
imagecopyresampled($new_img,$inter_img,0,0 ,0,0,$new_width,$new_height,$inter_w,$inter_h);
switch($type) {
case IMAGETYPE_JPEG :
imagejpeg($new_img, $dst_file,100); // Store image
break;
case IMAGETYPE_PNG :
imagepng($new_img,$dst_file,100);
break;
case IMAGETYPE_GIF :
imagegif($new_img,$dst_file,100);
break;
default:
break;
}
} // end if 1
// 2 One side of the target image is larger than the original image, and one side is smaller than the original image. First enlarge the ordinary image, and then crop it
// =if( ($ratio_w < 1 && $ratio_h > 1) || ( $ratio_w >1 && $ratio_h <1) )
else{
$ratio=$ratio_h>$ratio_w? $ratio_h : $ratio_w; //Take the value with the larger ratio
//Define a large image in the middle, The height or width of the image is equal to the target image, and then the original image is enlarged
$inter_w=(int)($w * $ratio);
$inter_h=(int) ($h * $ratio);
$inter_img= imagecreatetruecolor($inter_w, $inter_h);
//Crop the original image after scaling it
imagecopyresampled($inter_img,$src_img,0,0,0,0,$inter_w,$inter_h,$w,$h);
// Define a new image
$new_img=imagecreatetruecolor($new_width,$new_height);
imagecopy($new_img, $inter_img, 0,0,0,0,$new_width,$new_height);
switch($type) {
case IMAGETYPE_JPEG :
imagejpeg($new_img, $dst_file,100); // Store image
break;
case IMAGETYPE_PNG :
imagepng($new_img,$dst_file,100);
break;
case IMAGETYPE_GIF :
imagegif( $new_img,$dst_file,100);
break;
default:
break;
}
}// if3
}// end function
?>

The above introduces the code method of cropping pictures into fixed sizes in PHP, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to open img file How to open img file Sep 18, 2023 am 09:40 AM

Methods to open img files include using virtual optical drive software, using compression software, and using special tools. Detailed introduction: 1. Use virtual optical drive software to open, download and install a virtual optical drive software, right-click the img file, select "Open with" or "Associated Program", select the installed virtual optical drive software in the pop-up dialog box, virtual The optical drive software will automatically load the img file and use it as a disc image in the virtual optical drive. Double-click the disc icon in the virtual optical drive to open the img file and access its contents, etc.

How to open img file How to open img file Jul 06, 2023 pm 04:17 PM

How to open the img file: 1. Confirm the img file path; 2. Use the img file opener; 3. Select the opening method; 4. View the picture; 5. Save the picture. The img file is a commonly used image file format, usually used to store picture data.

What is the format of img? What is the format of img? Mar 17, 2023 am 10:33 AM

img is a file compression format, mainly used to create image files of floppy disks. It can be used to compress the contents of an entire floppy disk or an entire CD; files with the extension ".IMG" are created using this file format. ; The img file includes 3 basic nodes, namely "Ehfa_HeaderTag", "Ehfa_File" and "Ehfa_Entry".

U disk pe cannot read img U disk pe cannot read img Mar 19, 2024 pm 12:07 PM

U disk is one of the frequently used storage devices. There will also be some minor problems during use. For example: the U disk cannot be read. How to solve it? Put it away! Can’t read the USB flash drive? 4 steps to teach you how to solve the problem easily. After the USB flash drive has been inserted into the computer, click the Start menu, select Control Panel and put it away! Can’t read the USB flash drive? 4 steps to teach you to easily solve the problem. Find and double-click Device Manager in Control Panel. Keep it! Can’t read the USB flash drive? 4 steps to teach you how to easily solve the problem: Find the Universal Serial Bus controller on the main interface of the Device Manager and put it away! Can’t read the USB flash drive? 4 steps to teach you how to easily find the USB mass storage device, select it, right-click, find Uninstall and put it away! Can’t read the USB flash drive? 4 steps to teach you how to solve the problem easily. Welcome to leave a message for discussion!

what does image tag mean in html what does image tag mean in html Mar 04, 2021 pm 02:37 PM

In HTML, the image tag refers to the tag used to define the image, that is, the "<img>" tag. The img element can embed an image into a web page. The "<img>" tag is used to create a placeholder for the referenced image and link the image to the HTML page; the img tag uses the src attribute to specify the URL for displaying the image. Syntax "<img src="imageurl">".

How to change the src attribute of img in jquery How to change the src attribute of img in jquery Mar 03, 2022 pm 03:41 PM

How to change the img src attribute in jquery: 1. Use the attr() attribute, the syntax "$("img").attr("src","The address of the image file")"; 2. Use the prop() method, the syntax " $("img").prop("src","The address of the image file")".

How to use the new keyword in java How to use the new keyword in java May 03, 2023 pm 10:16 PM

1. Concept In the Java language, the "new" expression is responsible for creating an instance, in which the constructor is called to initialize the instance; the return value type of the constructor itself is void, not "the constructor returns the newly created Object reference", but the value of the new expression is a reference to the newly created object. 2. Purpose: Create an object of a new class. 3. Working mechanism: Allocate memory space for object members, and specify default values. Explicitly initialize member variables, perform construction method calculations, and return reference values. 4. Instance new operation often means opening up new memory in the memory. The memory space is allocated in the heap area in the memory. It is controlled by jvm and automatically manages the memory. Here we use the String class as an example. Pu

See all articles