日本語 | English


RSi /*

* $Id: CameraImage.java 117 2010-04-12 09:27:58Z mitsuki $
*
* Copyright 2009-2010 Fujitsu Limited.
* FUJITSU CONFIDENTIAL.
*/

package sample.rsnp2x.multi;

import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date;

import javax.imageio.ImageIO;

public class CameraImage {

	/** カウンター */
	private static int counter = -1;
	/** 現在のファイル名 */
	private String filename;
	/** 現在の画像 */
	private byte[] image;
	/** 現在の画像取得日付 */
	private String captureDate;
	/**
	 * 現在のカメラ画像を返す。
	 */
	public byte[] getImage() {
		return image;
	}
	/**
	 * 現在の画像取得日付を返す。
	 *
	 * @return
	 */
	public String getCaptureDate() {
		return captureDate;
	}
	/**
	 * 現在の画像ファイル名を返す。
	 *
	 * @return
	 */
	public String getFilename() {
		return filename;
	}
	/**
	 * ファイル一覧の次のファイルをロードする。
	 */
	public void loadNext() {
		counter++;
		// 取得日付
		Date date = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat(
				"yyyy-MM-dd'T'HH:mm:ssZ");
		captureDate = formatter.format(date);
		String type = "png";
		// ファイル名
		filename = String.format("img_%08d." + type, counter);
		// イメージ取得
		image = createImage(type);
	}
	/**
	 * 画像を取得します。
	 *
	 * @param type
	 *            画像フォーマット
	 * @return 画像データ
	 */
	private byte[] createImage(String type) {
		// 画像を取得
		BufferedImage im;
		im = new BufferedImage(240, 180, BufferedImage.TYPE_INT_RGB);
		Graphics2D g2d = im.createGraphics();
		int height = im.getHeight();
		int width = im.getWidth();
		int randrgb = (int) (Math.pow(2, 24) * Math.random());
		g2d.setColor(new Color(randrgb));
		g2d.fillRect(0, 0, width, height);
		g2d.setColor(Color.RED);
		g2d.setFont(new Font("Century", Font.PLAIN, 14));
		g2d.drawString("File Name : " + filename, 5, 20);
		g2d.drawString("Capture time : ", 5, 40);
		g2d.drawString(captureDate, 10, 54);
		g2d.dispose();
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		try {
			ImageIO.write(im, type, out);
		} catch (IOException e1) {
			e1.printStackTrace();
		} finally {
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		//byte[] bytes = out.toByteArray();
		
		// カメラ画像を取得する場合のロジック
		byte[] bytes = ImgCapture.getInstance().getImg();
		
		return bytes;
	}

}


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-05-25 (金) 13:50:51 (4357d)