ビットマップ画像を横スクロールする
M.U.G.E.N関連の画像で一枚の画像を横にスクロールしたものが大量に必要になったので、カッとなって作った。
ひしだまさん → ひしだまのホームページ(Hishidama's HomePage) が作った大型ビットマップクラスを使ってます。
import java.io.*; import jp.hishidama.bitmap.*; /** * Bitmap画像を横にスクロールする簡易プログラム * * @author chikuchikgonzalez * @version 1.0 */ public class BitmapScroller { public static void main(String[] args) { if (args.length < 3) { System.err.println("USAGE: BitmapScroller <ファイル> <保存先> <スクロール量> <回数>"); System.exit(1); } File file = new File(args[0]); File dest = new File(args[1]); int amount = Integer.parseInt(args[2]); int count = Integer.parseInt(args[3]); FileBitmap source = null; try { source = BitmapFactory.openFileBitmap(file.getParentFile().getAbsolutePath(), file.getName()); BitmapInfoHeader header = source.getBitmapInfoHeader(); for (int i = 0; i < count; i++) { Bitmap bitmap = BitmapFactory.createMemeryBitmap(header.getWidth(), header.getHeight(), header.getBitCount()); // 横軸計算 int offset = i * amount; int rightWidth = header.getWidth() - offset; // コピー bitmap.copy(0, 0, offset, header.getHeight(), source, header.getWidth() - offset, 0); bitmap.copy(offset, 0, rightWidth, header.getHeight(), source, 0, 0); // 保存 String fileName = String.format("%05d.bmp", i); bitmap.save(dest.getAbsolutePath(), fileName); } } finally { if (source != null) { source.close(); } } } }