在准备涉及图像的MCVE / SSCCE时,直接访问图像很有用。
涵盖大多数问题的图像类型是 - 多种颜色或形状的小图像、具有/不具有透明度的动画 GIF、“成对”图片的 JPEG,可用于图像转换、平铺集、精灵表。
是否有任何小型(小于 30KB)、现场、许可和免版税的图片我们可以热链接到这些类型的示例?
以下是一些常用的示例图像,主要来自 SO 上的现有答案。
最初在此答案中看到的使用 Java 生成的简单几何形状。它包括一个基于 Java 的接口,用于定义 URL 并使它们易于访问。
详细信息: 32x32 像素 PNG(4 种颜色 x 5 种形状),部分透明(沿边缘)。
最初在此答案中看到的棋子包括 2 个其他精灵集(不同颜色的相同图像)。
详细信息: 384x128 像素(每个精灵 64x64 像素)PNG,部分透明。
Categories: png sprite-sheet 图标
GIF 是唯一支持动画的图像格式。这里有一些例子。
如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,您可以在浏览器中看到的图像上“上下文单击”,或者:
交替:
下面是一个拆分棋子精灵表的 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));
}