Exception in thread "main" java.lang.NullPointerException问题求助

wzqfireball 2008-11-23 10:22:32
问题描述如下:
init:
deps-jar:
compile:
run:
Exception in thread "main" java.lang.NullPointerException
at sun.awt.image.codec.JPEGImageEncoderImpl.getDefaultJPEGEncodeParam(JPEGImageEncoderImpl.java:174)
at sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:205)
at waterset.P4.createJpg(P4.java:26)
at waterset.Main.main(Main.java:77)
Java Result: 1
成功生成(总时间:1 秒)
源程序如下:
package waterset;
import java.awt.*;
import java.awt.image.*;
import java.awt.AlphaComposite.*;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import com.sun.image.codec.jpeg.*;
/**
*
* @author Owner
*/
public class P4 {
BufferedImage image;

public void createJpg(String path) {
try {
FileOutputStream fos = new FileOutputStream(path);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(image);
bos.close();
} catch(FileNotFoundException fnfe) {
System.out.println(fnfe);
} catch(IOException ioe) {
System.out.println(ioe);
}
}
public void overlapPictures(BufferedImage p1, BufferedImage p2,int startOverlap)
{ int amountOverlap = p1.getWidth() - startOverlap;
Graphics g =p1.getGraphics();
Graphics2D g2 = (Graphics2D) g;

g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,(float) 1.0f));
g2.drawImage(p2,0,0,startOverlap,p1.getHeight(),null);
g2.drawImage(p1,startOverlap,0,p1.getWidth(),p1.getHeight(),null);

g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f));

g2.drawImage(p2,startOverlap,0,p1.getWidth(),p2.getHeight(),0,0,amountOverlap,p2.getHeight(),null);

g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,(float) 1.0f));
g2.drawImage(p2,p1.getWidth(),0,p2.getWidth()+startOverlap,p2.getHeight(),amountOverlap,0,p2.getWidth(),p2.getHeight(),null);



}

}


主类:
public class Main {
public static void main(String[] args) {
File file1=new File("d:\\1A.jpg");
File file2=new File("d:\\1B.jpg");
P4 p1=new P4();
P4 p2=new P4();
P4 p3=new P4();
try {
p1.image = ImageIO.read(file1);
p2.image = ImageIO.read(file2);
} catch(IOException ioe) {
System.out.println(ioe);
}
p3.overlapPictures(p1.image,p2.image,0);
p3.createJpg("d:\\waterset.jpg");
}

}


请大家帮我看看怎么回事啊~~~~
...全文
235 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qindequan 2008-11-24
  • 打赏
  • 举报
回复
楼主!发帖不给分。。。。是没人看的。
wzqfireball 2008-11-23
  • 打赏
  • 举报
回复
搞明白了,P3没有赋初值,但还是不太清楚。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧