/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package image_processing;
import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
/**
*
* @author sasi-adm
*/
public class Image {
private int [] ImageArray;
private int[][] ImageMatrix;//,RedMatrix,GreenMatrix,BlueMatrix
private Pixel Pixel;
private int IMAGE_WIDTH,IMAGE_HEIGHT;
private BufferedImage Image;
private String FileName,Format;
public Image(){}
public Image(String ImgFile){
Pixel = new Pixel();
//System.out.print(ImgFile);
FileName = ImgFile;
String [] temp = FileName.split("\\.");
//System.out.println(temp[temp.length-1]);
Format = temp[(temp.length-1)];
PixelGrabber pixel;
try {
Image = ImageIO.read(new File(ImgFile));
//ImageArray = new int[Image.getWidth()*Image.getHeight()];
ImageArray = Image.getRGB(0,0, Image.getWidth(), Image.getHeight(), ImageArray, 0, Image.getWidth());
IMAGE_WIDTH = Image.getWidth();
IMAGE_HEIGHT = Image.getHeight();
ImageMatrix = new int[IMAGE_HEIGHT][IMAGE_WIDTH];
for(int i = 0;i<IMAGE_HEIGHT;i++){
for(int j = 0;j<IMAGE_WIDTH;j++){
ImageMatrix[i][j] = ImageArray[i*IMAGE_WIDTH+j];
}
}
} catch (IOException ex) {
Logger.getLogger(Image.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void saveImage(String FileName){
try {
Image = new java.awt.image.BufferedImage(IMAGE_WIDTH, IMAGE_HEIGHT, BufferedImage.TYPE_INT_RGB);
Image.setRGB(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, ImageArray, 0, IMAGE_WIDTH);
ImageIO.write(Image, Format, new File(FileName));
} catch (IOException ex) {
Logger.getLogger(Image.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void saveImage(){
try {
Image = new java.awt.image.BufferedImage(IMAGE_WIDTH, IMAGE_HEIGHT, BufferedImage.TYPE_INT_RGB);
Image.setRGB(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, ImageArray, 0, IMAGE_WIDTH);
ImageIO.write(Image, Format, new File(FileName));
} catch (IOException ex) {
Logger.getLogger(Image.class.getName()).log(Level.SEVERE, null, ex);
}
}
public BufferedImage getImage(){
Image.setRGB(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, ImageArray, 0, IMAGE_WIDTH);
return Image;
}
public void test(){
for(int i = 0;i<IMAGE_HEIGHT;i++){
for(int j = 0;j<IMAGE_WIDTH;j++){
Pixel.setPixel(ImageArray[i*IMAGE_WIDTH+j]);
System.out.print("["+Pixel.getAlpha()+","+Pixel.getRed()+","+Pixel.getBlue()+","+Pixel.getGreen()+"] ");
}
System.out.println("\n");
}
}
public int[] getImageArray(){
return ImageArray;
}
public int[][] getImageMatrix(){
return ImageMatrix;
}
public void setImageMatrix(int[][] image){
ImageMatrix = image;
IMAGE_HEIGHT = image.length;
IMAGE_WIDTH = image[0].length;
ImageArray = new int[IMAGE_HEIGHT*IMAGE_WIDTH];
for(int i = 0;i<IMAGE_HEIGHT;i++){
for(int j = 0;j<IMAGE_WIDTH;j++){
ImageArray[i*IMAGE_WIDTH+j] = image[i][j];
}
}
Image = new java.awt.image.BufferedImage(IMAGE_WIDTH, IMAGE_HEIGHT, BufferedImage.TYPE_INT_RGB);
Image.setRGB(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, ImageArray, 0, IMAGE_WIDTH);
}
public int getHeight() {
return IMAGE_HEIGHT;
}
public int getWidth() {
return IMAGE_WIDTH;
}
}