不同的图像文件格式样本

问题描述 投票:1回答:3

在我们自己的软件中,我们支持加载不同类型的图像,包括但不限于.bmp,.gif,.tiff,.jpg和.png。

在代码中我注意到一些图像可能正在使用color indexing,但看起来我们的图像处理库之一缺少一些补丁(一次丢失)。

我想针对这些奇怪的图像格式测试我们的软件(我们正在加载.png和.jpg确定),你能推荐我一些图像,我可以下载许多不同的图像文件格式和不同的保存选项。

所以颜色索引的.png / .tiff的/ .bmp至少会包含在内。

image image-processing file-format
3个回答
3
投票

正如@piglet建议的那样,您应该创建测试用例以确保覆盖。你可以使用像ImageMagick这样的东西,这是一个非常基本的脚本,它可以生成不同格式的一堆文件 - 当然,还有更多的文件,但你需要指定自己的测试用例。

这将创建一个测试JPEG文件:

magick xc:red xc:lime +append \( xc:blue xc:magenta +append \) -append -resize 600x600 test.jpg

enter image description here

如果您需要各种格式,这是一个脚本:

#!/bin/bash
files=(test.gif test.jpg test.bmp PNG8:testPNG8.png PNG24:testPNG24.png PNG32:testPNG32.png PNG48:testPNG48.png PNG64:testPNG64.png test.tif)

for f in "${files[@]}"; do
   magick xc:red xc:lime +append \( xc:blue xc:magenta +append \) -append -resize 600x600 "$f"
done

这是输出文件:

-rw-r--r--@ 1 mark  staff  1080138 14 Sep 09:26 test.bmp
-rw-r--r--@ 1 mark  staff   109366 14 Sep 09:26 test.gif
-rw-r--r--@ 1 mark  staff    24457 14 Sep 09:26 test.jpg
-rw-r--r--@ 1 mark  staff  2160264 14 Sep 09:26 test.tif
-rw-r--r--@ 1 mark  staff    62181 14 Sep 09:26 testPNG24.png
-rw-r--r--@ 1 mark  staff    68153 14 Sep 09:26 testPNG32.png
-rw-r--r--@ 1 mark  staff   545890 14 Sep 09:26 testPNG48.png
-rw-r--r--@ 1 mark  staff   550337 14 Sep 09:26 testPNG64.png
-rw-r--r--@ 1 mark  staff     6747 14 Sep 09:26 testPNG8.png

这里是所有测试图像一起蒙太奇:

enter image description here

您可能需要循环:

  • 格式,
  • 位深度(8,16,32),
  • colourspaces,
  • palettised /非palettised,
  • 透明/不透明的,
  • 压缩类型,
  • 隔行/非隔行,
  • ... 等等

0
投票

虽然你的问题不在话题,但我想给你一些建议。

如果有什么东西在那里,网络搜索会产生任何有用的东西,所以在这里询问并没有多大意义。

你打算做的是:我们随机收集各种格式的图像,希望你的软件能够正确处理它们。

如果您的软件出现故障,您想告诉用户什么? “抱歉,特定用例不是我在网上发现的随机图像集的一部分用于测试?”

您应该做什么:为您的软件声称支持的每种格式创建测试样本。对于每种支持的格式,请确保为格式规范的每个方面实现测试样本!


0
投票

我做了一些搜索,但我没有找到任何全面的图像格式测试档案;我发现的是有限的:

我怀疑另一个要看的地方是用于开源项目的构建测试(CI测试)的测试图像:使用项目的图像(如Chromium或Firefox)或多格式图像处理库(如ImageMagick)。

图像库至少应包含的内容:

  • 各种格式(现代和过时;矢量,动画,3D和光栅;图像深度和色彩空间等)
  • 格式错误的文件具有无效的数据结构(每种格式各不相同,包括现有的恶意软件,截断的文件)
  • 多语言文件 - 同时是图像文件和另一种文件类型的文件(gifardiscussionthinkfu
  • DoS文件,导致过多的CPU(递归图像格式)或过多的内存使用(例如,具有疯狂大尺寸的高度压缩的黑色图像)
  • 具有不同元数据的格式,包括无效的元数据(例如EXIF malware

我可以找到每个特定格式的测试套件的好例子(例如pngbmp

© www.soinside.com 2019 - 2024. All rights reserved.