如何使用 PHP 从底部剪切图像?

Posted

技术标签:

【中文标题】如何使用 PHP 从底部剪切图像?【英文标题】:How can I cut an image from the bottom using PHP? 【发布时间】:2010-02-24 13:59:13 【问题描述】:

我想取出图片底部的文字。我怎样才能从底部切割它......比如说从底部切割 10 个像素。

我想在 php 中执行此操作。我有很多底部有文字的图片。

有办法吗?

【问题讨论】:

我们是否正在尝试以编程方式删除某人的水印? 【参考方案1】:

给你。

要更改图像的名称,请更改 $in_filename(当前为“source.jpg”)。您也可以在其中使用 URL,但显然这样会更糟。

更改 $new_height 变量以设置要裁剪的底部的多少。

玩弄 $offset_x、$offset_y、$new_width 和 $new_height,你会弄明白的。

请告诉我它有效。 :)

希望对你有帮助!

<?php

$in_filename = 'source.jpg';

list($width, $height) = getimagesize($in_filename);

$offset_x = 0;
$offset_y = 0;

$new_height = $height - 15;
$new_width = $width;

$image = imagecreatefromjpeg($in_filename);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_image, $image, 0, 0, $offset_x, $offset_y, $width, $height);

header('Content-Type: image/jpeg');
imagejpeg($new_image);

?>

【讨论】:

哇!非常感谢您的帮助,这很有效。现在我需要将新图像保存在目录中。我该怎么做? 我不想让人头疼,但您介意将我的答案标记为正确答案吗? :) 这就是我们在这里的全部内容。 ;) 对不起,我不能为你投票,因为我的声誉只有 11 :( @nazir,您应该在 Helgi 的答案旁边看到一个检查。如果你觉得他回答了你的问题,你应该标记那个。【参考方案2】:

您可以使用GD Image Library 在 PHP 中处理图像。您正在寻找的功能是imagecopy(),它将图像的一部分复制到另一个图像上。这是一个来自 PHP.net 的示例,大致符合您的描述:

<?php

$width = 50;
$height = 50;

$source_x = 0;
$source_y = 0;

// Create images
$source = imagecreatefromjpeg('source.jpg');
$new = imagecreatetruecolor($width, $height);

// Copy
imagecopy($source, $new, 0, 0, $source_x, $source_y, $width, $height);

// Output image
header('Content-Type: image/jpeg');
imagejpeg($new);

?>

要裁剪源图像,请根据自己的喜好更改 $source_x$source_y 变量。

【讨论】:

谁能给我看一个我需要的工作代码 - 非常感谢 您可能会将 SO 误认为是一群免费为您工作的开发人员。 @nazir:最后一行有错字。将imagejpeg($dest) 更改为imagejpeg($new)

以上是关于如何使用 PHP 从底部剪切图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 iPhone 8 中的此图像剪切问题?

如何垂直居中响应式剪切图像?

如何使用CSS和SVG剪切和遮罩技术

如何在Swift中以编程方式从另一个图像中剪切徽标的形状(png图像)?

如何使用python从工程图图像中提取底部?

如何从底部填充图像,直到使用 OpenCV 检测到边缘?