ちゃんと読めたでしょうか?
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"));
}
}
戻る