import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
import javax.imageio.metadata.*;
import javax.imageio.stream.*;
import org.w3c.dom.*;
import com.sun.media.imageio.plugins.tiff.BaselineTIFFTagSet;
import com.sun.media.imageio.plugins.tiff.TIFFDirectory;
import com.sun.media.imageio.plugins.tiff.TIFFField;
import com.sun.media.imageio.plugins.tiff.TIFFTag;
/**
* Example class showing two ways to write DPI values to a TIFF image.
*/
public class TIFFWriteDPI {
private static String METADATA_NAME =
"com_sun_media_imageio_plugins_tiff_image_1.0";
private static int DPI_X = 42;
private static int DPI_Y = 24;
public static void main(String[] args) throws Throwable {
// Create sample image.
RenderedImage image = new BufferedImage(256, 256,
BufferedImage.TYPE_3BYTE_BGR);
// Get TIFF writer.
Iterator writers = ImageIO.getImageWritersByFormatName("TIFF");
if(writers == null || !writers.hasNext())
throw new IllegalStateException("No TIFF writers!");
ImageWriter writer = (ImageWriter)writers.next();
// Get the default image metadata.
ImageTypeSpecifier imageType =
ImageTypeSpecifier.createFromRenderedImage(image);
IIOMetadata imageMetadata =
writer.getDefaultImageMetadata(imageType, null);
// Set DPI.
String fileName;
String methodology;
if(args.length == 0 || args[0].equalsIgnoreCase("DOM")) {
fileName = "dpi_dom.tif";
setDPIViaDOM(imageMetadata);
methodology = "DOM";
} else {
fileName = "dpi_api.tif";
imageMetadata = setDPIViaAPI(imageMetadata);
methodology = "API";
}
System.out.println("\nWriting "+fileName+
" using "+methodology+" methodology\n");
// Write image.
writer.setOutput(new FileImageOutputStream(new File(fileName)));
writer.write(new IIOImage(image, null, imageMetadata));
}
/**
* Set DPI using DOM nodes.
*/
private static void setDPIViaDOM(IIOMetadata imageMetadata)
throws IIOInvalidTreeException {
// Get the DOM tree.
IIOMetadataNode root =
(IIOMetadataNode)imageMetadata.getAsTree(METADATA_NAME);
// Get the IFD.
IIOMetadataNode ifd =
(IIOMetadataNode)root.getElementsByTagName("TIFFIFD").item(0);
// Get {X,Y}Resolution tags.
BaselineTIFFTagSet base = BaselineTIFFTagSet.getInstance();
TIFFTag tagXRes = base.getTag(BaselineTIFFTagSet.TAG_X_RESOLUTION);
TIFFTag tagYRes = base.getTag(BaselineTIFFTagSet.TAG_Y_RESOLUTION);
// Create {X,Y}Resolution nodes.
IIOMetadataNode nodeXRes = createRationalNode(tagXRes.getName(),
tagXRes.getNumber(),
DPI_X, 1);
IIOMetadataNode nodeYRes = createRationalNode(tagYRes.getName(),
tagYRes.getNumber(),
DPI_Y, 1);
// Append {X,Y}Resolution nodes to IFD node.
ifd.appendChild(nodeXRes);
ifd.appendChild(nodeYRes);
// Set metadata from tree.
imageMetadata.setFromTree(METADATA_NAME, root);
}
/**
* Creates a node of TIFF data type RATIONAL.
*/
private static IIOMetadataNode createRationalNode(String tagName,
int tagNumber,
int numerator,
int denominator) {
// Create the field node with tag name and number.
IIOMetadataNode field = new IIOMetadataNode("TIFFField");
field.setAttribute("name", tagName);
field.setAttribute("number", "" + tagNumber);
// Create the RATIONAL node.
IIOMetadataNode rational = new IIOMetadataNode("TIFFRational");
rational.setAttribute("value", numerator+"/"+denominator);
// Create the RATIONAL node and append RATIONAL node.
IIOMetadataNode rationals = new IIOMetadataNode("TIFFRationals");
rationals.appendChild(rational);
// Append RATIONALS node to field node.
field.appendChild(rationals);
return field;
}
/**
* Set DPI using API.
*/
private static IIOMetadata setDPIViaAPI(IIOMetadata imageMetadata)
throws IIOInvalidTreeException {
// Derive the TIFFDirectory from the metadata.
TIFFDirectory dir = TIFFDirectory.createFromMetadata(imageMetadata);
// Get {X,Y}Resolution tags.
BaselineTIFFTagSet base = BaselineTIFFTagSet.getInstance();
TIFFTag tagXRes = base.getTag(BaselineTIFFTagSet.TAG_X_RESOLUTION);
TIFFTag tagYRes = base.getTag(BaselineTIFFTagSet.TAG_Y_RESOLUTION);
// Create {X,Y}Resolution fields.
TIFFField fieldXRes = new TIFFField(tagXRes, TIFFTag.TIFF_RATIONAL,
1, new long[][] {{DPI_X, 1}});
TIFFField fieldYRes = new TIFFField(tagYRes, TIFFTag.TIFF_RATIONAL,
1, new long[][] {{DPI_Y, 1}});
// Append {X,Y}Resolution fields to directory.
dir.addTIFFField(fieldXRes);
dir.addTIFFField(fieldYRes);
// Convert to metadata object and return.
return dir.getAsMetadata();
}
}
2011년 3월 10일 목요일
Tiff G4 conversion
BufferedImage outputImage = new BufferedImage(ire.getWidth(null), ire.getHeight(null), BufferedImage.TYPE_BYTE_BINARY);
outputImage.createGraphics().drawImage(ire, 0, 0, null);
TIFFEncodeParam param = new TIFFEncodeParam();
param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
FileOutputStream stream = new FileOutputStream(new File(path));
TIFFImageEncoder encoder = (TIFFImageEncoder) TIFFCodec.createImageEncoder("tiff", stream, param);
encoder.encode(outputImage);
//=====================================
ImageOutputStream out = ImageIO.createImageOutputStream(new File("c:\\temp\\ggg.tif"));
ImageWriter writer = ImageIO.getImageWritersByFormatName("tiff").next();
ImageWriteParam param2 = writer.getDefaultWriteParam();
param2.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param2.setCompressionType("CCITT T.4");
writer.setOutput(out);
writer.write(null,new IIOImage(ImageIO.read(new File(path)),null,null), param2);
writer.dispose();
out.close();
//=====================================
outputImage.createGraphics().drawImage(ire, 0, 0, null);
TIFFEncodeParam param = new TIFFEncodeParam();
param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
FileOutputStream stream = new FileOutputStream(new File(path));
TIFFImageEncoder encoder = (TIFFImageEncoder) TIFFCodec.createImageEncoder("tiff", stream, param);
encoder.encode(outputImage);
//=====================================
ImageOutputStream out = ImageIO.createImageOutputStream(new File("c:\\temp\\ggg.tif"));
ImageWriter writer = ImageIO.getImageWritersByFormatName("tiff").next();
ImageWriteParam param2 = writer.getDefaultWriteParam();
param2.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param2.setCompressionType("CCITT T.4");
writer.setOutput(out);
writer.write(null,new IIOImage(ImageIO.read(new File(path)),null,null), param2);
writer.dispose();
out.close();
//=====================================
jpeg2000 conversion
< %@ page language="java" contentType="image/jpeg" pageEncoding="UTF-8"%>
< %@page import!="java.awt.Image"%>
< %@page import!="java.awt.image.BufferedImage"%>
< %@page import!="java.io.File"%>
< %@page import!="javax.imageio.ImageIO"%>
< %@page import!="java.applet!.Applet!"%>
< %@page import!="java.awt.Button"%>
< %@page import!="java.awt.Graphics"%>
< %@page import!="java.awt.Image"%>
< %@page import!="java.awt.Rectangle"%>
< %@page import!="java.awt.TextArea"%>
< %@page import!="java.awt.event.ActionEvent"%>
< %@page import!="java.awt.event.ActionListener"%>
< %@page import!="java.awt.image.BufferedImage"%>
< %@page import!="java.awt.image.RenderedImage"%>
< %@page import!="java.io.DataInputStream"%>
< %@page import!="java.io.DataOutputStream"%>
< %@page import!="java.io.File"%>
< %@page import!="java.io.FileOutputStream"%>
< %@page import!="java.io.IOException"%>
< %@page import!="java.net.Socket"%>
< %@page import!="java.net.URL"%>
< %@page import!="javax.imageio.ImageIO"%>
< %@page import!="javax.imageio.ImageReader"%>
< %@page import!="javax.imageio.stream.ImageInputStream"%>
< %@page import!="javax.media.jai.JAI"%>
< %@page import!="javax.media.jai.ParameterBlockJAI"%>
< %@page import!="javax.media.jai.PlanarImage"%>
< %@page import!="com.sun.media.imageio.plugins.jpeg2000.J2KImageReadParam"%>
< % String jp2Path = "C:\\Temp\\temp\\154511004210f.jp2"; String jpgPath = "C:\\Temp\\temp\\154511004210f.jpg"; BufferedImage bi = null; try { bi = decode(jp2Path, jpgPath, "JPEG"); } catch (Exception e) { bi = ImageIO.read(new File("C:\\Temp\\noimage.jpg")); } response.setContentType("image/jpeg"); ImageIO.write(bi, "JPEG", response.getOutputStream()); %>
< %! public static BufferedImage decode(String source, String target, String encode) throws IOException { ImageInputStream in = ImageIO.createImageInputStream(new File(source)); ImageReader reader = ImageIO.getImageReaders(in).next(); reader.setInput(in); boolean workaround = true; J2KImageReadParam param = new J2KImageReadParam(); if (workaround) param.setResolution(5); // param.setSourceRegion(new Rectangle(0,0,reader.getWidth(0),reader.getHeight(0))); System.out.println("*******************************************************1"); BufferedImage image = reader.read(0, param); System.out.println("*******************************************************2"); FileOutputStream stream = new FileOutputStream(target); System.out.println("*******************************************************3"); JAI.create("encode", image, stream, encode, null); stream.flush(); stream.close(); return image; } public static void resize(String src, String target, int width, int height) throws IOException { BufferedImage biSrc = javax.imageio.ImageIO.read(new File(src)); if ( width < 1 && height < 1 ) { width = biSrc.getWidth(); height = biSrc.getHeight(); } else if ( width < 1 ) { width = (int)( (height / (float)biSrc.getHeight()) * biSrc.getWidth()); } else if ( height < 1 ) { height = (int)( (width / (float)biSrc.getWidth()) * biSrc.getHeight()) ; } Image targetImage = biSrc.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage biTarget = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); biTarget.createGraphics().drawImage(targetImage, 0, 0, null); FileOutputStream fos = new FileOutputStream(target); ImageIO.write(biTarget, "JPEG", fos); fos.close(); } %>
< %@page import!="java.awt.Image"%>
< %@page import!="java.awt.image.BufferedImage"%>
< %@page import!="java.io.File"%>
< %@page import!="javax.imageio.ImageIO"%>
< %@page import!="java.applet!.Applet!"%>
< %@page import!="java.awt.Button"%>
< %@page import!="java.awt.Graphics"%>
< %@page import!="java.awt.Image"%>
< %@page import!="java.awt.Rectangle"%>
< %@page import!="java.awt.TextArea"%>
< %@page import!="java.awt.event.ActionEvent"%>
< %@page import!="java.awt.event.ActionListener"%>
< %@page import!="java.awt.image.BufferedImage"%>
< %@page import!="java.awt.image.RenderedImage"%>
< %@page import!="java.io.DataInputStream"%>
< %@page import!="java.io.DataOutputStream"%>
< %@page import!="java.io.File"%>
< %@page import!="java.io.FileOutputStream"%>
< %@page import!="java.io.IOException"%>
< %@page import!="java.net.Socket"%>
< %@page import!="java.net.URL"%>
< %@page import!="javax.imageio.ImageIO"%>
< %@page import!="javax.imageio.ImageReader"%>
< %@page import!="javax.imageio.stream.ImageInputStream"%>
< %@page import!="javax.media.jai.JAI"%>
< %@page import!="javax.media.jai.ParameterBlockJAI"%>
< %@page import!="javax.media.jai.PlanarImage"%>
< %@page import!="com.sun.media.imageio.plugins.jpeg2000.J2KImageReadParam"%>
< % String jp2Path = "C:\\Temp\\temp\\154511004210f.jp2"; String jpgPath = "C:\\Temp\\temp\\154511004210f.jpg"; BufferedImage bi = null; try { bi = decode(jp2Path, jpgPath, "JPEG"); } catch (Exception e) { bi = ImageIO.read(new File("C:\\Temp\\noimage.jpg")); } response.setContentType("image/jpeg"); ImageIO.write(bi, "JPEG", response.getOutputStream()); %>
< %! public static BufferedImage decode(String source, String target, String encode) throws IOException { ImageInputStream in = ImageIO.createImageInputStream(new File(source)); ImageReader reader = ImageIO.getImageReaders(in).next(); reader.setInput(in); boolean workaround = true; J2KImageReadParam param = new J2KImageReadParam(); if (workaround) param.setResolution(5); // param.setSourceRegion(new Rectangle(0,0,reader.getWidth(0),reader.getHeight(0))); System.out.println("*******************************************************1"); BufferedImage image = reader.read(0, param); System.out.println("*******************************************************2"); FileOutputStream stream = new FileOutputStream(target); System.out.println("*******************************************************3"); JAI.create("encode", image, stream, encode, null); stream.flush(); stream.close(); return image; } public static void resize(String src, String target, int width, int height) throws IOException { BufferedImage biSrc = javax.imageio.ImageIO.read(new File(src)); if ( width < 1 && height < 1 ) { width = biSrc.getWidth(); height = biSrc.getHeight(); } else if ( width < 1 ) { width = (int)( (height / (float)biSrc.getHeight()) * biSrc.getWidth()); } else if ( height < 1 ) { height = (int)( (width / (float)biSrc.getWidth()) * biSrc.getHeight()) ; } Image targetImage = biSrc.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage biTarget = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); biTarget.createGraphics().drawImage(targetImage, 0, 0, null); FileOutputStream fos = new FileOutputStream(target); ImageIO.write(biTarget, "JPEG", fos); fos.close(); } %>
java trayicon
import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
public class TrayTest
{
private TrayIcon trayIcon;
public TrayTest()
{
if (SystemTray.isSupported()) {
Image image = Toolkit.getDefaultToolkit().getImage("c:/temp/0.jpg");
PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("Exit");
defaultItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popup.add(defaultItem);
trayIcon = new TrayIcon(image, "notepad", popup);
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Runtime.getRuntime().exec("notepad.exe");
} catch (IOException e1) {
trayIcon.displayMessage("Action Event",
"notepad is not found !",
TrayIcon.MessageType.INFO);
}
}
});
try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
}
} else {
System.err.println("System tray is currently not supported.");
}
}
public static void main(String[] args) throws Exception
{
new TrayTest();
}
}
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
public class TrayTest
{
private TrayIcon trayIcon;
public TrayTest()
{
if (SystemTray.isSupported()) {
Image image = Toolkit.getDefaultToolkit().getImage("c:/temp/0.jpg");
PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("Exit");
defaultItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popup.add(defaultItem);
trayIcon = new TrayIcon(image, "notepad", popup);
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Runtime.getRuntime().exec("notepad.exe");
} catch (IOException e1) {
trayIcon.displayMessage("Action Event",
"notepad is not found !",
TrayIcon.MessageType.INFO);
}
}
});
try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
}
} else {
System.err.println("System tray is currently not supported.");
}
}
public static void main(String[] args) throws Exception
{
new TrayTest();
}
}
applet tag
< applet! codebase = "../WEB-INF/classes/" code="ch.sample.worker.AppTest.class" archive="AppTest.jar" width=800 height="600">
signed applet
"C:\Program Files\Java\jdk1.6.0_13\bin\jar" cvf AppTest.jar ch/sample/worker/AppTest.class ch/sample/worker/ViewerClient.class
"C:\Program Files\Java\jdk1.6.0_13\bin\keytool" -keystore C:\temp\.keystore -genkey -dname "cn=test,ou=test o=test, c=KR" -alias TestSign -keypass 123456 -storepass 123456
"C:\Program Files\Java\jdk1.6.0_13\bin\jarsigner" -keystore C:\temp\.keystore -storepass 123456 -keypass 123456 AppTest.jar TestSign
"C:\Program Files\Java\jdk1.6.0_13\bin\keytool" -keystore C:\temp\.keystore -genkey -dname "cn=test,ou=test o=test, c=KR" -alias TestSign -keypass 123456 -storepass 123456
"C:\Program Files\Java\jdk1.6.0_13\bin\jarsigner" -keystore C:\temp\.keystore -storepass 123456 -keypass 123456 AppTest.jar TestSign
java image resize
public static BufferedImage resizeImage(BufferedImage image, int width, int height) {
float w = new Float(width) ;
float h = new Float(height) ;
if ( w <= 0 && h <= 0 ) {
w = image.getWidth();
h = image.getHeight();
} else if ( w <= 0 ) {
w = image.getWidth() * ( h / image.getHeight() );
} else if ( h <= 0 ) {
h = image.getHeight() * ( w / image.getWidth() );
}
int wi = (int) w;
int he = (int) h;
BufferedImage resizedImage = new BufferedImage(wi,he,BufferedImage.TYPE_INT_RGB);
resizedImage.getGraphics().drawImage(
image.getScaledInstance(wi,he,Image.SCALE_AREA_AVERAGING),
0,0,wi,he,null
);
return resizedImage;
}
float w = new Float(width) ;
float h = new Float(height) ;
if ( w <= 0 && h <= 0 ) {
w = image.getWidth();
h = image.getHeight();
} else if ( w <= 0 ) {
w = image.getWidth() * ( h / image.getHeight() );
} else if ( h <= 0 ) {
h = image.getHeight() * ( w / image.getWidth() );
}
int wi = (int) w;
int he = (int) h;
BufferedImage resizedImage = new BufferedImage(wi,he,BufferedImage.TYPE_INT_RGB);
resizedImage.getGraphics().drawImage(
image.getScaledInstance(wi,he,Image.SCALE_AREA_AVERAGING),
0,0,wi,he,null
);
return resizedImage;
}
Html page to image file
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.JEditorPane;
import javax.swing.SwingUtilities;
import javax.swing.text.Document;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import com.lowagie.text.FontFactory;
import com.lowagie.text.pdf.BaseFont;
public abstract class WebImage
{
static class Kit extends HTMLEditorKit
{
public Document createDefaultDocument() {
HTMLDocument doc = (HTMLDocument) super.createDefaultDocument();
doc.setTokenThreshold(Integer.MAX_VALUE);
doc.setAsynchronousLoadPriority(-1);
return doc;
}
}
public static BufferedImage create(String src, int width, int height) {
BufferedImage image = null;
JEditorPane pane = new JEditorPane();
Kit kit = new Kit();
pane.setEditorKit(kit);
pane.setEditable(false);
pane.setMargin(new Insets(0,20,0,20));
pane.setContentType("text/html; charset=UTF-8");
//pane.setFont(new Font("serif",Font.BOLD,20));
try {
System.out.println("-------------"+pane.getFont().getFamily());
System.out.println("-------------"+pane.getFont().getFontName());
pane.setPage(new URL(src));
System.out.println("-----------------------");
System.out.println(pane.getText());
System.out.println("-----------------------");
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
Container c = new Container();
SwingUtilities.paintComponent(g, pane, c, 0, 0, width, height);
g.dispose();
} catch (Exception e) {
System.out.println(e);
}
return image;
}
public static void main ( String [] args ) {
// TODO Auto-generated method stub
//Call the Web page and convert to Image
BufferedImage ire;
String url="file:///C:\\temp\\test.html";
String path="c:\\temp\\tmp.jpg";
ire = WebImage.create(url, 800, 800);
//You can convert the BufferedImage to
//any format that you wish, jpg I thought was the best format
try{
ImageIO.write(ire, "PNG", new File(path));
System.out.println("complete");
}catch(IOException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}catch(IllegalArgumentException e){
e.printStackTrace();
}
}
}
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.JEditorPane;
import javax.swing.SwingUtilities;
import javax.swing.text.Document;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import com.lowagie.text.FontFactory;
import com.lowagie.text.pdf.BaseFont;
public abstract class WebImage
{
static class Kit extends HTMLEditorKit
{
public Document createDefaultDocument() {
HTMLDocument doc = (HTMLDocument) super.createDefaultDocument();
doc.setTokenThreshold(Integer.MAX_VALUE);
doc.setAsynchronousLoadPriority(-1);
return doc;
}
}
public static BufferedImage create(String src, int width, int height) {
BufferedImage image = null;
JEditorPane pane = new JEditorPane();
Kit kit = new Kit();
pane.setEditorKit(kit);
pane.setEditable(false);
pane.setMargin(new Insets(0,20,0,20));
pane.setContentType("text/html; charset=UTF-8");
//pane.setFont(new Font("serif",Font.BOLD,20));
try {
System.out.println("-------------"+pane.getFont().getFamily());
System.out.println("-------------"+pane.getFont().getFontName());
pane.setPage(new URL(src));
System.out.println("-----------------------");
System.out.println(pane.getText());
System.out.println("-----------------------");
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
Container c = new Container();
SwingUtilities.paintComponent(g, pane, c, 0, 0, width, height);
g.dispose();
} catch (Exception e) {
System.out.println(e);
}
return image;
}
public static void main ( String [] args ) {
// TODO Auto-generated method stub
//Call the Web page and convert to Image
BufferedImage ire;
String url="file:///C:\\temp\\test.html";
String path="c:\\temp\\tmp.jpg";
ire = WebImage.create(url, 800, 800);
//You can convert the BufferedImage to
//any format that you wish, jpg I thought was the best format
try{
ImageIO.write(ire, "PNG", new File(path));
System.out.println("complete");
}catch(IOException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}catch(IllegalArgumentException e){
e.printStackTrace();
}
}
}
log4j.properties sample
log4j.rootLogger = DEBUG, stdout
log4j.logger.ViewerServer=DEBUG, viewer
log4j.logger.ImageServer=DEBUG, image
log4j.logger.ScanServer=DEBUG, scan
log4j.logger.EaiServer=DEBUG, eai
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.dailyfile.Threshold = DEBUG
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File = log/demon.log
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.viewer.Threshold = DEBUG
log4j.appender.viewer = org.apache.log4j.DailyRollingFileAppender
log4j.appender.viewer.File = log/demon1.log
log4j.appender.viewer.layout = org.apache.log4j.PatternLayout
log4j.appender.viewer.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.image.Threshold = DEBUG
log4j.appender.image = org.apache.log4j.DailyRollingFileAppender
log4j.appender.image.File = log/demon2.log
log4j.appender.image.layout = org.apache.log4j.PatternLayout
log4j.appender.image.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.scan.Threshold = DEBUG
log4j.appender.scan = org.apache.log4j.DailyRollingFileAppender
log4j.appender.scan.File = log/demon3.log
log4j.appender.scan.layout = org.apache.log4j.PatternLayout
log4j.appender.scan.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.eai.Threshold = DEBUG
log4j.appender.eai = org.apache.log4j.DailyRollingFileAppender
log4j.appender.eai.File = log/demon4.log
log4j.appender.eai.layout = org.apache.log4j.PatternLayout
log4j.appender.eai.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.logger.ViewerServer=DEBUG, viewer
log4j.logger.ImageServer=DEBUG, image
log4j.logger.ScanServer=DEBUG, scan
log4j.logger.EaiServer=DEBUG, eai
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.dailyfile.Threshold = DEBUG
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File = log/demon.log
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.viewer.Threshold = DEBUG
log4j.appender.viewer = org.apache.log4j.DailyRollingFileAppender
log4j.appender.viewer.File = log/demon1.log
log4j.appender.viewer.layout = org.apache.log4j.PatternLayout
log4j.appender.viewer.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.image.Threshold = DEBUG
log4j.appender.image = org.apache.log4j.DailyRollingFileAppender
log4j.appender.image.File = log/demon2.log
log4j.appender.image.layout = org.apache.log4j.PatternLayout
log4j.appender.image.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.scan.Threshold = DEBUG
log4j.appender.scan = org.apache.log4j.DailyRollingFileAppender
log4j.appender.scan.File = log/demon3.log
log4j.appender.scan.layout = org.apache.log4j.PatternLayout
log4j.appender.scan.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
log4j.appender.eai.Threshold = DEBUG
log4j.appender.eai = org.apache.log4j.DailyRollingFileAppender
log4j.appender.eai.File = log/demon4.log
log4j.appender.eai.layout = org.apache.log4j.PatternLayout
log4j.appender.eai.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
Runtime.getRuntime
String [] _cmd1 = { "/bin/sh","-c","pax -r -s ',^,"+destDir+",' -f " + tarFileName };
//String [] _cmd1 = { "cmd","/c","pax -r -s ',^,"+destDir+",' -f " + tarFileName };
String cmd1 = execCommand ( _cmd1 );
public String execCommand(String [] cmd) throws IOException , InterruptedException {
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
if (p.exitValue() != 0) {
BufferedReader err = new BufferedReader (new InputStreamReader(p.getErrorStream()));
while (err.ready())
log.info("ERR" + err.readLine());
err.close();
} else {
BufferedReader out = new BufferedReader(new InputStreamReader(p.getInputStream()));
while (out.ready())
log.info("OK" + out.readLine());
out.close();
}
p.destroy();
return "";
}
//String [] _cmd1 = { "cmd","/c","pax -r -s ',^,"+destDir+",' -f " + tarFileName };
String cmd1 = execCommand ( _cmd1 );
public String execCommand(String [] cmd) throws IOException , InterruptedException {
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
if (p.exitValue() != 0) {
BufferedReader err = new BufferedReader (new InputStreamReader(p.getErrorStream()));
while (err.ready())
log.info("ERR" + err.readLine());
err.close();
} else {
BufferedReader out = new BufferedReader(new InputStreamReader(p.getInputStream()));
while (out.ready())
log.info("OK" + out.readLine());
out.close();
}
p.destroy();
return "";
}
java Regular Expression
java.util.regex.Pattern p = java.util.regex.Pattern.compile("[ ]+$");
java.util.regex.Matcher m = p.matcher(s);
String r = m.replaceAll("");
java.util.regex.Matcher m = p.matcher(s);
String r = m.replaceAll("");
java scheduler
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Properties;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
public class BatchScheduler {
public ScheduledThreadPoolExecutor sch ;
public BatchScheduler() {
super();
sch = new ScheduledThreadPoolExecutor(2);
}
public void start() throws FileNotFoundException, IOException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd", new Locale("KOREAN", "KOREA"));
String jobDate = formatter.format(new Date());
// from 0 second , interval 10 second
sch.scheduleAtFixedRate(new SendImage(jobDate), 0, 10, TimeUnit.SECONDS);
sch.scheduleAtFixedRate(new DeleteImage(jobDate), 0, 10, TimeUnit.SECONDS);
}
public void stop() {
sch.shutdown();
}
public static void main(String[] args) {
BatchScheduler t = new BatchScheduler();
try {
t.start();
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Properties;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
public class BatchScheduler {
public ScheduledThreadPoolExecutor sch ;
public BatchScheduler() {
super();
sch = new ScheduledThreadPoolExecutor(2);
}
public void start() throws FileNotFoundException, IOException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd", new Locale("KOREAN", "KOREA"));
String jobDate = formatter.format(new Date());
// from 0 second , interval 10 second
sch.scheduleAtFixedRate(new SendImage(jobDate), 0, 10, TimeUnit.SECONDS);
sch.scheduleAtFixedRate(new DeleteImage(jobDate), 0, 10, TimeUnit.SECONDS);
}
public void stop() {
sch.shutdown();
}
public static void main(String[] args) {
BatchScheduler t = new BatchScheduler();
try {
t.start();
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
피드 구독하기:
글 (Atom)