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 裁剪图像,但保留默认大小_Php_Image - Fatal编程技术网

Php 裁剪图像,但保留默认大小

Php 裁剪图像,但保留默认大小,php,image,Php,Image,我的图片在顶部、底部和左侧都有很大的空间。我如何删除该空间并获得新的更小的jpeg图像?简单的答案是:你不能。至少不准确。JPEG压缩会留下瑕疵,导致图像不能正确裁剪 然而,如果你坚持,你可以裁剪带有公差的图像 首先,您需要选择“空”颜色。这本身就是一个挑战,但通常左上角的像素(0,0)可以正常工作 一旦你有了空的颜色,扫描顶部的行,直到你找到一个不同颜色的像素(或者在一个小的空白内,以容纳JPEG伪影)。保存找到非空颜色的行的编号 从图像底部重复此过程 然后,对左侧和右侧的列执行相同的操作,但

我的图片在顶部、底部和左侧都有很大的空间。我如何删除该空间并获得新的更小的jpeg图像?

简单的答案是:你不能。至少不准确。JPEG压缩会留下瑕疵,导致图像不能正确裁剪

然而,如果你坚持,你可以裁剪带有公差的图像

首先,您需要选择“空”颜色。这本身就是一个挑战,但通常左上角的像素
(0,0)
可以正常工作

一旦你有了空的颜色,扫描顶部的行,直到你找到一个不同颜色的像素(或者在一个小的空白内,以容纳JPEG伪影)。保存找到非空颜色的行的编号

从图像底部重复此过程

然后,对左侧和右侧的列执行相同的操作,但只扫描已经找到的顶部行和底部行(以避免重复检查角点)


最后,使用维度将图像复制到更小的画布上,然后保存。

我有很多图像,希望用PHP来完成。您能定义“空间”吗?这是否意味着只有纯色?白色还是黑色?你有多少?我有很多。只是颜色、背景噪音等。这有关系吗?你已经说过“很多”。如果多意味着10,你应该用photoshop来做,如果多意味着1000000,那么一个智能的php解决方案将节省大量的时间。。。。那么有多少呢?让我们说我想有一个解决方案来用PHP实现它…:)我同意我会这样做,但我永远不会使用这个,太多的变量。“容忍”的概念很难界定。OP说“噪音”,对我来说也是,这意味着不同的颜色会破坏宽容的概念。如果通过噪声,OP意味着它是一种纯色,根据jpeg伪影变化很小,那么您可能有一张照片