Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php裁剪图像的一部分并将其保存为给定路径上的thumball。没有任何外部jquery库_Php_Image_Crop - Fatal编程技术网

php裁剪图像的一部分并将其保存为给定路径上的thumball。没有任何外部jquery库

php裁剪图像的一部分并将其保存为给定路径上的thumball。没有任何外部jquery库,php,image,crop,Php,Image,Crop,我有很多大尺寸的图像,我只想裁剪这些图像的中间部分(100x100),以原始分辨率,并将其保存为给定路径上的thumball。这是我的 <?php $img = "../QcImages/file.jpg"; square_crop($img,'old.jpg'); function square_crop($src_image, $dest_image, $thumb_size = 100, $jpg_quality = 90) { // Get dimensions of e

我有很多大尺寸的图像,我只想裁剪这些图像的中间部分(100x100),以原始分辨率,并将其保存为给定路径上的thumball。这是我的

<?php
$img = "../QcImages/file.jpg";

square_crop($img,'old.jpg');


 function square_crop($src_image, $dest_image, $thumb_size = 100, $jpg_quality = 90) {

// Get dimensions of existing image
$image = getimagesize($src_image);

// Check for valid dimensions
if( $image[0] <= 0 || $image[1] <= 0 ) return false;

// Determine format from MIME-Type
$image['format'] = strtolower(preg_replace('/^.*?\//', '', $image['mime']));

// Import image
switch( $image['format'] ) {
    case 'jpg':
    case 'jpeg':
        $image_data = imagecreatefromjpeg($src_image);
    break;
    case 'png':
        $image_data = imagecreatefrompng($src_image);
    break;
    case 'gif':
        $image_data = imagecreatefromgif($src_image);
    break;
    default:
        // Unsupported format
        return false;
    break;
}

// Verify import
if( $image_data == false ) return false;

// Calculate measurements
if( $image[0] & $image[1] ) {
    // For landscape images
    $x_offset = ($image[0] - $image[1]) / 2;
    $y_offset = 0;
    $square_size = $image[0] - ($x_offset * 2);
} else {
    // For portrait and square images
    $x_offset = 400;
    $y_offset = ($image[1] - $image[0]) / 2;
    $square_size = $image[1] - ($y_offset * 2);
}

// Resize and crop
$img = imagecreatetruecolor('100','100'); // I created a new canvas 
$canvas = imagecreatetruecolor($thumb_size, $thumb_size);
imagecopy($img,$image_data, 0, 0, 120, 120, 200, 150); //  Edited new code 
$canvas = imagecreatetruecolor($thumb_size, $thumb_size);
if( imagecopyresampled(
    $canvas,
    $image_data, /// i know this is actual image which is copied in new thumball image but i have no idea how to crop only little part of it rather than using whole image.
    0,
    0,
    $x_offset, // i tried editing this offset 
    $y_offset, // and this offset 
    $thumb_size,
    $thumb_size,
    $square_size,
    $square_size
)) {

    // Create thumbnail
    switch( strtolower(preg_replace('/^.*\./', '', $dest_image)) ) {
        case 'jpg':
        case 'jpeg':
            //return imagejpeg($canvas, $dest_image, $jpg_quality);//
           return imagejpeg($img,$dest_image,90);// New Edited 
        break;
        case 'png':
            return imagepng($canvas, $dest_image);
        break;
        case 'gif':
            return imagegif($canvas, $dest_image);
        break;
        default:
            // Unsupported format
            return false;
        break;
    }

     } else {
    return false;
     }
    }
    ?>

但这段代码调整整个图像的大小并将其保存为thumball。。。我不想调整整个图像的大小,我只想裁剪任何部分形状的图像大小(100X100),并将其保存为拇指。对不起,英语不好


谢谢你让我编辑代码。。我用一些新的编辑再次尝试了这段代码,它工作得很好,非常感谢

然后将匹配的坐标输入到
imagecopyresampled
…我试过了,但不起作用。。你能举个例子吗?向我们展示(并解释)你尝试了什么(通过编辑你的问题)。非常感谢你,我编辑这段代码是为了告诉你我在哪里遇到了问题。。并试图再次执行。。并取得了预期的效果。。。谢谢:)