去除视频缩略图上的黑边

3
我有一个图库,用户可以提交YouTube视频链接,服务器会自动从YouTube获取缩略图。然而,很多视频的图像顶部和底部有黑色条纹。我知道黑色条纹的起源,但当我将缩略图调整为正方形时,黑色条纹会干扰设计。
我尝试从顶部到底部分析像素颜色,直到找不到黑色颜色(imagecolorat()),但仍然会留下一些接近黑色的颜色,所以小条纹仍然存在于图像中。
还有什么更有效的算法来检查吗?

使用PHP,您可以像 此处 所示裁剪图像并去除黑边。 - machineaddict
3个回答

6

其中一个解决方案是做与YouTube相同的事情。 如果您访问他们的网站,并查看包装图像和元素的图像,您会发现包装元素具有类似于以下CSS的样式:

display:inline-block;
height: /*here goes fixed height in px*/
overflow: hidden;

他们正在使用包含顶部和底部黑色区域的图像(在该容器内),但他们使用CSS来隐藏它。 这意味着元素(在YouTube上具有属性display:inline-block的span)将比实际图片小,图片将被居中/定位,使顶部和底部的黑色区域会溢出较小的包装并被隐藏。

2

您应该检查视频的宽高比(4:3或16:9),并裁剪缩略图以保持该比例。不要尝试检测颜色。


2
如果您想根据颜色进行操作,基于GD的wideimage库已经实现了这一点。该方法称为autoCrop在线演示已存在。这可能已经满足了您的需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接