PHP图像从顶部,底部,左侧和右侧裁剪

Posted

技术标签:

【中文标题】PHP图像从顶部,底部,左侧和右侧裁剪【英文标题】:PHP Image Crop from the top, bottom, left & right 【发布时间】:2016-11-25 23:48:59 【问题描述】:

伙计们,

我正在 ui=sing 此代码上传和裁剪图像。当我把它放在一起时,裁剪的中心就在图像的中间,效果很好!

我想通过添加裁剪选项来增加功能,而不是从顶部、左侧或底部裁剪居中的图像。这将从上一页的单选框中选择。

我看到了一些相当复杂的方法,但想知道是否有一种简单的方法可以实现它,有什么想法吗?谢谢。

$handle->image_resize           = true;
$handle->image_ratio_crop       = true;
$handle->image_convert          = 'jpg';
$handle->image_x                = $x;
$handle->image_y                = $y;
$handle->jpeg_quality           = 75;
$handle->Process( $dir_dest );

来自上一页的表格:

    <label for="artwork">Banner Artwork</label>
<div class="input-group upload-crop">
    <input class="upload-button" accept="image/jpg,image/png,image/jpeg,image/gif" name="<?=$strNameInput?>" id="<?=$strNameInput?>" type="file" />
    <label><strong>Crop from:</strong></label>
    <label for="centre">Centre</label><input checked type="radio" id="centre" name="crop" value="centre" /> 
    <label for="right">Right</label><input type="radio" id="right" name="crop" value="right" /> 
    <label for="left">Left</label><input type="radio" id="left" name="crop" value="left" /> 
    <label for="top">Top</label><input type="radio" id="top" name="crop" value="top" /> 
    <label for="bottom">Bottom</label><input type="radio" id="bottom" name="crop" value="bottom" />
</div>

【问题讨论】:

【参考方案1】:

找到了!我使用了一个名为 crop 的 POST 变量(来自单选按钮),如果没有选择单选按钮,它会居中裁剪,如果没有,它使用 T、B、L 或 R

$strCrop = $_POST['crop'];

    $handle->image_resize           = true;
    if ( $strCrop == '' ) 
        $handle->image_ratio_crop       = true;
     else 
        $handle->image_ratio_crop       = $strCrop;
    
    $handle->image_convert          = 'jpg';
    $handle->image_x                = $x;
    $handle->image_y                = $y;
    $handle->jpeg_quality           = 75;
    $handle->Process( $dir_dest );

它现在使用了一个精美的引导浏览按钮:

   <div class="btn btn-default btn-file pull-left">
        Browse<input class="upload-button" style="display:none" accept="image/jpg,image/png,image/jpeg,image/gif" name="<?=$strNameInput?>" id="<?=$strNameInput?>" type="file" />
    </div>
    <label><strong>Image crop:</strong></label>
    <input checked type="radio" id="centre" name="crop" value="" />
    <label for="centre">Centre</label>
    <input type="radio" id="right" name="crop" value="R" />
    <label for="right">Right</label>
    <input type="radio" id="left" name="crop" value="L" /> 
    <label for="left">Left</label>
    <input type="radio" id="top" name="crop" value="T" />
    <label for="top">Top</label>
    <input type="radio" id="bottom" name="crop" value="B" />
    <label for="bottom">Bottom</label>

【讨论】:

以上是关于PHP图像从顶部,底部,左侧和右侧裁剪的主要内容,如果未能解决你的问题,请参考以下文章

php 在全局设置(Builder UI)中添加所有方向,即顶部,右侧,底部和左侧的边距

php 在全局设置(Builder UI)中添加所有方向,即顶部,右侧,底部和左侧的边距

如何从顶部和底部裁剪位图图像?

Python:为啥我的代码没有正确裁剪选定的图像?

在 C# 中从图像中裁剪空白 [重复]

如何从 jpeg 的顶部和底部裁剪 45px