[英]How to load an image in a Java console application? (without an applet)
我正在创建一个输出一系列图像文件的Java控制台应用程序,我想绘制一个图像文件作为输出的一部分。 getImage似乎不起作用,它需要Toolkit或其他东西。
Image cover = getImage("cover.png");
有任何想法吗?
编辑:程序不显示图像,它生成它们并将它们保存到一系列文件中。 我想出了如何保存图像,绘制基本几何图形,但不管图像是出于何种原因。
处理不同图像格式的另一种方法是ImageIO类。 以下示例将jpg转换为png并绘制十字。
public class ImageReaderExample {
public static void main(String[] args) {
try{
BufferedImage image = ImageIO.read(new File("/tmp/input.jpg"));
image.getGraphics().drawLine(1, 1, image.getWidth()-1, image.getHeight()-1);
image.getGraphics().drawLine(1, image.getHeight()-1, image.getWidth()-1, 1);
ImageIO.write(image, "png", new File("/tmp/output.png"));
}
catch (IOException e){
e.printStackTrace();
}
}
}
如果您实际上并没有尝试绘制图像,只是尝试使用awt类,则需要通过设置java.awt.headless
系统属性来告诉awt以无头模式运行。 您可以在加载awt之前在程序中执行此操作:
System.setProperty("java.awt.headless", "true");
或者在运行程序时在命令行上设置属性:
java -Djava.awt.headless=true Program
你想在哪里画画? 看到你需要一些输出,这可能有所帮助,假设bmps(但解释了其他格式):
http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Encode.doc.html
// Define the source and destination file names.
String inputFile = /images/FarmHouse.tif
String outputFile = /images/FarmHouse.bmp
// Load the input image.
RenderedOp src = JAI.create("fileload", inputFile);
// Encode the file as a BMP image.
FileOutputStream stream =
new FileOutputStream(outputFile);
JAI.create("encode", src, stream, BMP, null);
// Store the image in the BMP format.
JAI.create("filestore", src, outputFile, BMP, null);
读取和写入Bmp文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.