㈠ 請問下java中導出圖片怎麼做
package com.xolt;
import java.io.FileOutputStream;
import java.io.File;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;;
public class TestPOI {
public static void main(String[] args) {
FileOutputStream fileOut = null;
BufferedImage bufferImg =null;
BufferedImage bufferImg1 = null;
try{
//先把讀進來的圖片放到一個ByteArrayOutputStream中,以便產生ByteArray
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File("C:/Documents and Settings/dingqi/Desktop/clip_image002.jpg"));
bufferImg1 = ImageIO.read(new File("C:/Documents and Settings/dingqi/Desktop/clip_image002.jpg"));
ImageIO.write(bufferImg,"jpg",byteArrayOut);
ImageIO.write(bufferImg1,"jpg",byteArrayOut1);
//創建一個工作薄
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("poi picT");
//HSSFRow row = sheet1.createRow(2);
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,512,255,(short) 1,1,(short)10,20);
HSSFClientAnchor anchor1 = new HSSFClientAnchor(0,0,512,255,(short) 2,30,(short)10,60);
anchor1.setAnchorType(2);
//插入圖片
patriarch.createPicture(anchor , wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
patriarch.createPicture(anchor1 , wb.addPicture(byteArrayOut1.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut = new FileOutputStream("c:/workbook.xls");
//寫入excel文件
wb.write(fileOut);
fileOut.close();
}catch(IOException io){
io.printStackTrace();
System.out.println("io erorr : "+ io.getMessage());
} finally
{
if (fileOut != null)
{
try {
fileOut.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
poi中圖片到到excel的方法 你需要准備poi包 試試看看
㈡ java輸入輸出流拷貝圖片 下面的代碼為什麼生成的圖片打不開還會越來越大
while((n=fis.read(buf))!=-1)
{
fos.write(buf, 0, n);//輸出到指定文件
}
㈢ java編程將兩張圖片復制在同一畫板上
方法一: 可以使用JLabel 來顯示圖片, 然後存放到同一JPanel中
方法二: 可以重寫JPanel 的paint方法 來繪制圖片
推薦使用方法一: 簡便
效果圖
importjava.awt.BorderLayout;
importjava.awt.EventQueue;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.JLabel;
{
privateJPanelcontentPane;
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
FrameIMGframe=newFrameIMG();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
publicFrameIMG(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,450,300);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
contentPane.setLayout(newBorderLayout(0,0));
setContentPane(contentPane);
JPanelpanel=newJPanel();
contentPane.add(panel,BorderLayout.CENTER);
JLabeljl1=newJLabel(newImageIcon("1.jpg"));//圖片1
panel.add(jl1);
JLabeljl2=newJLabel(newImageIcon("2.jpg"));//圖片2
panel.add(jl2);
}
}
㈣ JAVA怎麼將一個圖片復制到文件夾中去
JDK寶典里有這樣的一段代碼,你調用File方法就可以了:
/**
* 復制單個文件, 如果目標文件存在,則不覆蓋。
* @param srcFileName 待復制的文件名
* @param destFileName 目標文件名
* @return 如果復製成功,則返回true,否則返回false
*/
public static boolean File(String srcFileName, String destFileName){
return CopyFileUtil.File(srcFileName, destFileName, false);
}
/**
* 復制單個文件
* @param srcFileName 待復制的文件名
* @param destFileName 目標文件名
* @param overlay 如果目標文件存在,是否覆蓋
* @return 如果復製成功,則返回true,否則返回false
*/
public static boolean File(String srcFileName,
String destFileName, boolean overlay) {
//判斷原文件是否存在
File srcFile = new File(srcFileName);
if (!srcFile.exists()){
System.out.println("復制文件失敗:原文件" + srcFileName + "不存在!");
return false;
} else if (!srcFile.isFile()){
System.out.println("復制文件失敗:" + srcFileName + "不是一個文件!");
return false;
}
//判斷目標文件是否存在
File destFile = new File(destFileName);
if (destFile.exists()){
//如果目標文件存在,而且復制時允許覆蓋。
if (overlay){
//刪除已存在的目標文件,無論目標文件是目錄還是單個文件
System.out.println("目標文件已存在,准備刪除它!");
if(!DeleteFileUtil.delete(destFileName)){
System.out.println("復制文件失敗:刪除目標文件" + destFileName + "失敗!");
return false;
}
} else {
System.out.println("復制文件失敗:目標文件" + destFileName + "已存在!");
return false;
}
} else {
if (!destFile.getParentFile().exists()){
//如果目標文件所在的目錄不存在,則創建目錄
System.out.println("目標文件所在的目錄不存在,准備創建它!");
if(!destFile.getParentFile().mkdirs()){
System.out.println("復制文件失敗:創建目標文件所在的目錄失敗!" );
return false;
}
}
}
//准備復制文件
int byteread = 0;//讀取的位數
InputStream in = null;
OutputStream out = null;
try {
//打開原文件
in = new FileInputStream(srcFile);
//打開連接到目標文件的輸出流
out = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
//一次讀取1024個位元組,當byteread為-1時表示文件已經讀完
while ((byteread = in.read(buffer)) != -1) {
//將讀取的位元組寫入輸出流
out.write(buffer, 0, byteread);
}
System.out.println("復制單個文件" + srcFileName + "至" + destFileName + "成功!");
return true;
} catch (Exception e) {
System.out.println("復制文件失敗:" + e.getMessage());
return false;
} finally {
//關閉輸入輸出流,注意先關閉輸出流,再關閉輸入流
if (out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}