136

在准备涉及图像的MCVE / SSCCE时,直接访问图像很有用。

涵盖大多数问题的图像类型是 - 多种颜色或形状的小图像、具有/不具有透明度的动画 GIF、“成对”图片的 JPEG,可用于图像转换、平铺集、精灵表。

是否有任何小型(小于 30KB)、现场、许可和免版税的图片我们可以热链接到这些类型的示例?

4

1 回答 1

74

以下是一些常用的示例图像,主要来自 SO 上的现有答案。

图标

最初在此答案中看到的使用 Java 生成的简单几何形状。它包括一个基于 Java 的接口,用于定义 URL 并使它们易于访问。

详细信息: 32x32 像素 PNG(4 种颜色 x 5 种形状),部分透明(沿边缘)。

分类:

  
  

精灵表

最初在此答案中看到的棋子包括 2 个其他精灵集(不同颜色的相同图像)。

详细信息: 384x128 像素(每个精灵 64x64 像素)PNG,部分透明。

Categories:

动画

GIF 是唯一支持动画的图像格式。这里有一些例子。

Categories:

固体背景

this answer中所示的动画虚线边框

详细信息: 100x30 像素,填充 BG(无透明度)

在这个答案中看到的缩放星星,最初是作为屏幕保护程序的“屏幕截图”开发的。

详细信息: 160x120 像素,填充 BG(无透明度)

在我的游戏中动画瓷砖的这个答案中看到的动画水

详细信息: 60x60 像素,填充 BG(无透明度)

透明背景

轨道动画,最初是为1.1C开发的。“内”行星的轨道(从水星到木星,在小行星带的厚处显示了一个额外的轨道)。在黑暗的BG上更好。

详细信息:具有透明度的 450x450 和 150x150 像素动画 GIF。

图片

澳大利亚悉尼中央商务区的日出和月亮落下 澳大利亚堪培拉附近的斯特罗姆洛山上
的望远镜上的日落和金星。

类别: +图像过渡

详细信息: 480x320 像素 JPEG x 4。(此处以 1/2 大小显示。)


悉尼东南郊区黎明时分的全景。

类别: (滚动)

详细信息: 1474x436 像素 JPEG。

黎明全景

瓷砖

这张地球的墨卡托地图可以左右平铺。最初看到这个答案。答案还包括图像的第二个版本,它显示了赤道的半透明线(不在中心,但明显低于它)。

详细信息: 640x316 像素(在赤道底部添加 44 像素)带有透明背景的 PNG。

分类: (滚动)

小费

要获取图像的 URL,您可以在浏览器中看到的图像上“上下文单击”,或者:

  • 显示属性。可以从出现的对话框中复制 URL。
  • 看图。从浏览器地址栏中复制 URL。

交替:

  • 使用浏览器“显示源代码”并从 HTML 中复制它。
  • 对于那些有足够代表的人。(100+,编辑社区 Wiki 答案),去编辑答案并从文本中提取 URL。

代码

下面是一个拆分棋子精灵表的 Java 类,适合粘贴到 MCVE:

import java.awt.image.*;
import javax.imageio.*;
import java.net.*;
import java.io.*;
import java.util.*;

public final class ChessSprites {
    private ChessSprites() {}
    public static final int SIZE = 64;
    public static final BufferedImage SHEET;
    static {
        try {
            // see https://stackoverflow.com/a/19209651/2891664
            SHEET = ImageIO.read(new URL("https://i.stack.imgur.com/memI0.png"));
        } catch (IOException x) {
            throw new UncheckedIOException(x);
        }
    }
    public static final BufferedImage GOLD_QUEEN    = SHEET.getSubimage(0 * SIZE, 0,    SIZE, SIZE);
    public static final BufferedImage SILVER_QUEEN  = SHEET.getSubimage(0 * SIZE, SIZE, SIZE, SIZE);
    public static final BufferedImage GOLD_KING     = SHEET.getSubimage(1 * SIZE, 0,    SIZE, SIZE);
    public static final BufferedImage SILVER_KING   = SHEET.getSubimage(1 * SIZE, SIZE, SIZE, SIZE);
    public static final BufferedImage GOLD_ROOK     = SHEET.getSubimage(2 * SIZE, 0,    SIZE, SIZE);
    public static final BufferedImage SILVER_ROOK   = SHEET.getSubimage(2 * SIZE, SIZE, SIZE, SIZE);
    public static final BufferedImage GOLD_KNIGHT   = SHEET.getSubimage(3 * SIZE, 0,    SIZE, SIZE);
    public static final BufferedImage SILVER_KNIGHT = SHEET.getSubimage(3 * SIZE, SIZE, SIZE, SIZE);
    public static final BufferedImage GOLD_BISHOP   = SHEET.getSubimage(4 * SIZE, 0,    SIZE, SIZE);
    public static final BufferedImage SILVER_BISHOP = SHEET.getSubimage(4 * SIZE, SIZE, SIZE, SIZE);
    public static final BufferedImage GOLD_PAWN     = SHEET.getSubimage(5 * SIZE, 0,    SIZE, SIZE);
    public static final BufferedImage SILVER_PAWN   = SHEET.getSubimage(5 * SIZE, SIZE, SIZE, SIZE);
    public static final List<BufferedImage> SPRITES =
        Collections.unmodifiableList(Arrays.asList(GOLD_QUEEN,  SILVER_QUEEN,
                                                   GOLD_KING,   SILVER_KING,
                                                   GOLD_ROOK,   SILVER_ROOK,
                                                   GOLD_KNIGHT, SILVER_KNIGHT,
                                                   GOLD_BISHOP, SILVER_BISHOP,
                                                   GOLD_PAWN,   SILVER_PAWN));
}
于 2013-10-06T13:57:56.937 回答