如何解决如何在Java控制台应用程序中加载图像? 没有小程序
| 我正在制作一个输出一系列图像文件的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,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\",outputFile,null);
读取和写入Bmp文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。