www.pudn.com > QRcode.rar > QRCodeUtility.java
package jp.sourceforge.qrcode.codec.util;
import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import javax.imageio.*;
//import javax.microedition.lcdui.*;
//import com.kddi.graphics.*;
/* 標準クラスライブラリ依存、プログラム言語依存になりそうな処理は
* このクラスにまとめる
* */
public class QRCodeUtility {
public static int[][] parseImage(BufferedImage image) {
int width = image.getWidth();
int height = image.getHeight();
int[][] result = new int[width][height];
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
result[x][y] = image.getRGB(x,y);
}
}
return result;
}
public static int sqrt(int arg) {
return (int)Math.sqrt(arg);
}
public static int[][] parseImage(String filename) {
File file = new File(filename);
BufferedImage image = null;
try {
image = ImageIO.read(file);
} catch (Exception e) {
e.printStackTrace();
}
return parseImage(image);
}
public static int[][] parseImage(URL url) {
BufferedImage image = null;
try {
image = ImageIO.read(url);
} catch (Exception e) {
e.printStackTrace();
}
return parseImage(image);
}
// for au by KDDI Profile Phase 3.0
// /*画像の各ピクセルのRGBをint型の配列に展開する*/
// public static int[][] parseImage(Image image) {
// int width = image.getWidth();
// int height = image.getHeight();
// Image mutable = Image.createImage(width, height);
// Graphics g = mutable.getGraphics();
// g.drawImage(image, 0, 0, Graphics.TOP|Graphics.LEFT);
// ExtensionGraphics eg = (ExtensionGraphics) g;
// int[][] result = new int[width][height];
//
// for (int x = 0; x < width; x++) {
// for (int y = 0; y < height; y++) {
// result[x][y] = eg.getPixel(x, y);
// }
// }
// return result;
// }
//
// public static int[][] parseImage(byte[] imageData) {
// return parseImage(Image.createImage(imageData, 0, imageData.length));
// }
}