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; } } |