2011/01/01 あけおめことよろ



A Happy New Year



ちゃんと読めたでしょうか?
zxing というライブラリを使ってQRコードを作成してみました。
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.google.zxing.qrcode.encoder.ByteMatrix;
import com.google.zxing.qrcode.encoder.Encoder;
import com.google.zxing.qrcode.encoder.QRCode;


public class AHappyNewYear {
	private static final int SIZE = 4;
	public static void main(String[] args) throws WriterException, IOException {
		String text = "あけましておめでとうございます。今年もよろしくお願いします。平成23年元旦 a-san";
		QRCode qrCode = new QRCode();
		Hashtable hints = new Hashtable();
		hints.put(EncodeHintType.CHARACTER_SET, "MS932");
		// QRコードに変換する
		Encoder.encode(text, ErrorCorrectionLevel.L, hints, qrCode);
		ByteMatrix m = qrCode.getMatrix();
		System.out.println(m.getWidth()+"x"+m.getHeight());

		// 画像に出力する。
		BufferedImage image = new BufferedImage(m.getWidth()*SIZE, m.getHeight()*SIZE, BufferedImage.TYPE_4BYTE_ABGR); 
		Graphics2D g = image.createGraphics();
		for (int y=0; y<m.getHeight(); y++) {
			for (int x=0; x<m.getWidth(); x++) {
				if (m.get(x, y)==1) {
					g.setColor(Color.BLACK);
				} else {
					g.setColor(Color.WHITE);
				}
				g.fillRect(x*SIZE, y*SIZE, SIZE, SIZE);
			}
		}
		ImageIO.write(image, "PNG", new File("AHappyNewYear.png"));
	}

}

戻る