我有画廊,用户可以在其中提交视频的Youtube链接,服务器会自动从Youtube中提取缩略图。但是,许多视频在图像的顶部和底部都包含黑条。我知道黑条的起源,但是当我将缩略图调整为正方形时,黑条会干扰设计。
我试图从上到下分析像素颜色,直到找不到黑色( imagecolorat()),但它仍然留下一些近黑色,所以小条仍然存在于图像。
什么可以更有效的algorythm来检查?
答案 0 :(得分:6)
其中一个解决方案是做与youtube相同的事情。 如果您访问他们的站点,并查看包装图像的图像和元素,您将看到wrap元素具有与此类似的css:
display:inline-block;
height: /*here goes fixed height in px*/
overflow: hidden;
他们正在使用顶部和底部(在该容器内)包含黑色区域的图像,但他们使用css来隐藏它。 这意味着元素(在带有att显示的youtube span上:inline-block)将小于acctual图片,图片将居中/定位,因此顶部和底部黑色区域将溢出较小的包裹并将被隐藏。
答案 1 :(得分:2)
您应该检查视频的比例(4:3或16:9)并裁剪缩略图以保持该比例。不试图检测颜色。
答案 2 :(得分:2)
如果您想要按颜色显示,wideimage library(基于GD)已经实现了这一点。该方法称为autoCrop
,online demonstration exists。
这可能已经满足您的需求。