一、java输入输出流处理图片怎么提取相片
这个简单 你可以先读 读完之后在写出来么 public class BinaryOperation { public static void main(String args[]){ FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("d:/图片/chenhl。
jpg"); byte[] b = new byte[128]; fos = new FileOutputStream("d:/图片/chenhl 复件。jpg"); while(fis。
read(b)!=-1){ fos。 write(b); } } catch (Exception e) { e。
printStackTrace(); }finally{ try{ if(fis!=null) fis。close(); if(fos!=null) fos。
close(); }catch(Exception e){ e。printStackTrace(); } } } } 希望能帮助你。
。
二、关于通过java实现图片格式的转换
import 。
*; import t。*; import age。
*; import t。Graphics; import lor。
ColorSpace; import ageio。ImageIO; public class ImageCut { /** * 缩放图像 * @param srcImageFile源图像文件地址 * @param result缩放后的图像地址 * @param scale缩放比例 * @param flag缩放选择:true 放大; false 缩小; */ public static void scale(String srcImageFile, String result, int scale, boolean flag) { try { BufferedImage src = ad(new File(srcImageFile)); // 读入文件 int width = tWidth(); // 得到源图宽 int height = tHeight(); // 得到源图长 if (flag) {// 放大 width = width * scale; height = height * scale; } else {// 缩小 width = width / scale; height = height / scale; } Image image = tScaledInstance(width, height, Image。
SCALE_DEFAULT); BufferedImage tag = new BufferedImage(width, height, BufferedImage。TYPE_INT_RGB); Graphics g = tGraphics(); g。
drawImage(image, 0, 0, null); // 绘制缩小后的图 g。dispose(); ImageIO。
write(tag, "JPEG", new File(result));// 输出到文件流 } catch (IOException e) { intStackTrace(); } } /** * 图像切割 * @param srcImageFile源图像地址 * @param descDir切片目标文件夹 * @param destWidth目标切片宽度 * @param destHeight目标切片高度 */ public static void cut(String srcImageFile, String descDir, int destWidth, int destHeight) { try { Image img; ImageFilter cropFilter; // 读取源图像 BufferedImage bi = ad(new File(srcImageFile)); int srcWidth = tHeight(); // 源图宽度 int srcHeight = tWidth(); // 源图高度 if (srcWidth > destWidth && srcHeight > destHeight) { Image image = tScaledInstance(srcWidth, srcHeight, Image。 SCALE_DEFAULT); destWidth = 200; // 切片宽度 destHeight = 150; // 切片高度 int cols = 0; // 切片横向数量 int rows = 0; // 切片纵向数量 // 计算切片的横向和纵向数量 if (srcWidth % destWidth == 0) { cols = srcWidth / destWidth; } else { cols = (int) Math。
floor(srcWidth / destWidth) + 1; } if (srcHeight % destHeight == 0) { rows = srcHeight / destHeight; } else { rows = (int) Math。 floor(srcHeight / destHeight) + 1; } // 循环建立切片 // 改进的想法:是否可用多线程加快切割速度 for (int i = 0; i JPG GIF->PNG PNG->JPG PNG->GIF(X) public static void convert(String source, String result) { try { File f = new File(source); nRead(); nWrite(); BufferedImage src = ad(f); ImageIO。
write(src, "JPG", new File(result)); } catch (Exception e) { // TODO Auto-generated catch block intStackTrace(); } } // 彩色转为黑白 public static void gray(String source, String result) { try { BufferedImage src = ad(new File(source)); ColorSpace cs = tInstance(ColorSpace。 CS_GRAY); ColorConvertOp op = new ColorConvertOp(cs, null); src = lter(src, null); ImageIO。
write(src, "JPEG", new File(result)); } catch (IOException e) { intStackTrace(); } } public static void main(String[] args) { //cut("e:/ g", "e:/t/", 200, 150); } } import 。 *; import t。
*; import age。*; import t。
Graphics; import lor。ColorSpace; import ageio。
ImageIO; public class ImageCut { /** * 缩放图像 * @param srcImageFile源图像文件地址 * @param result缩放后的图像地址 * @param scale缩放比例 * @param flag缩放选择:true 放大; false 缩小; */ public static void scale(String srcImageFile, String result, int scale, boolean flag) { try { BufferedImage src = ad(new File(srcImageFile)); // 读入文件 int width = tWidth(); // 得到源图宽 int height = tHeight(); // 得到源图长 if (flag) {// 放大 width = width * scale; height = height * scale; } else {// 缩小 width = width / scale; height = height / scale; } Image image = tScaledInstance(width, height, Image。 SCALE_DEFAULT); BufferedImage tag = new BufferedImage(width, height, BufferedImage。
TYPE_INT_RGB); Graphics g = tGraphics(); g。 drawImage(image, 0, 0, null); // 绘制缩小后的图 g。
dispose(); ImageIO。write(tag, "JPEG", new File(result));// 输出到文件流 } catch (IOException e) { intStackTrace(); } } /** * 图像切割 * @param srcImageFile源图像地址 * @param descDir切片目标文件夹 * @param destWidth目标切片宽度 * @param destHeight目标切片高度 */ public static void cut(String srcImageFile, String descDir, int destWidth, int destHeight) { try { Image img; ImageFilter cropFilter; // 读取源图像 BufferedImage bi = ad(new File(srcImageFile)); int srcWidth = tHeight(); // 源图宽度 int srcHeight = tWidth(); // 源图高度 if (srcWidth > destWidth && srcHeight > destHeight) { Image image = tScaledInstance(srcWidth, srcHeight, Image。
SCALE_DEFAULT); destWidth = 200; // 切片宽度 destHeight = 150; // 切片高度 int cols = 0; // 切片横向数量 int rows = 0; // 切片纵向数量 // 计算切片的横向和纵向数量 if (srcWidth % destWidth == 0) { cols = srcWidth / destWidth; } else { cols = (int) Math。 floor(。
三、怎么用java导出word
java导出word代码如下:package com.bank.util;import java.awt.Color;import java.io.FileOutputStream;import java.io.IOException;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.FontFactory;import com.lowagie.text.Image;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Phrase;import com.lowagie.text.Table;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.rtf.RtfWriter2;public class WordTools { public void createDocContext(String file) throws DocumentException, IOException { // 设置纸张大小 Document document = new Document(PageSize.A4); // 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, new FileOutputStream(file)); document.open(); // 设置中文字体 BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); // 标题字体风格 Font titleFont = new Font(bfChinese, 12, Font.BOLD); // 正文字体风格 Font contextFont = new Font(bfChinese, 10, Font.NORMAL); Paragraph title = new Paragraph("标题"); // 设置标题格式对齐方式 title.setAlignment(Element.ALIGN_CENTER); title.setFont(titleFont); document.add(title); String contextString = "iText是一个能够快速产生PDF文件的java类库。
" + " \n"// 换行 + "iText的java类对于那些要产生包含文本," + "表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。
" + "使用iText与PDF能够使你正确的控制Servlet的输出。"; Paragraph context = new Paragraph(contextString); // 正文格式左对齐 context.setAlignment(Element.ALIGN_LEFT); context.setFont(contextFont); // 离上一段落(标题)空的行数 context.setSpacingBefore(5); // 设置第一行空的列数 context.setFirstLineIndent(20); document.add(context); //利用类FontFactory结合Font和Color可以设置各种各样字体样式 /** * Font.UNDERLINE 下划线,Font.BOLD 粗体 */ Paragraph underline = new Paragraph("下划线的实现", FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.UNDERLINE, new Color(0, 0, 255))); document.add(underline); // 设置 Table 表格 Table aTable = new Table(3); int width[] = {25,25,50}; aTable.setWidths(width);//设置每列所占比例 aTable.setWidth(90); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_CENTER);//居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);//纵向居中显示 aTable.setAutoFillEmptyCells(true); //自动填满 aTable.setBorderWidth(1); //边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); //边框颜色 aTable.setPadding(0);//衬距,看效果就知道什么意思了 aTable.setSpacing(0);//即单元格之间的间距 aTable.setBorder(2);//边框 //设置表头 /** * cell.setHeader(true);是将该单元格作为表头信息显示; * cell.setColspan(3);指定了该单元格占3列; * 为表格添加表头信息时,要注意的是一旦表头信息添加完了之后, \ * 必须调用 endHeaders()方法,否则当表格跨页后,表头信息不会再显示 */ Cell haderCell = new Cell("表格表头"); haderCell.setHeader(true); haderCell.setColspan(3); aTable.addCell(haderCell); aTable.endHeaders(); Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.GREEN); Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据", fontChinese )); cell.setVerticalAlignment(Element.ALIGN_TOP); cell.setBorderColor(new Color(255, 0, 0)); cell.setRowspan(2); aTable.addCell(cell); aTable.addCell(new Cell("#1")); aTable.addCell(new Cell("#2")); aTable.addCell(new Cell("#3")); aTable.addCell(new Cell("#4")); Cell cell3 = new Cell(new Phrase("一行三列数据", fontChinese )); cell3.setColspan(3); cell3.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell3); document.add(aTable); document.add(new Paragraph("\n")); //添加图片// Image img=Image.getInstance("http://127.0.0.1:8080/testSystem/images/1_r1_c1.png");// img.setAbsolutePosition(0, 0);// img.setAlignment(Image.RIGHT);//设置图片显示位置// img.scaleAbsolute(12,35);//直接设定显示尺寸// img.scalePercent(50);//表示显示的大小为原尺寸的50%// img.scalePercent(25, 12);//图像高宽的显示比例// img.setRotation(30);//图像旋转一定角度// document.add(img); document.close(); } public static void main(String[] args){ WordTools b=new WordTools(); try { b.createDocContext("d:/demo.doc"); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOExceptio。
四、java中怎么将word文档怎么生成图片
public class CreateWordDemo{ public void createDocContext(String file)throws DocumentException,IOException { //设置纸张大小 Document document = newDocument(PageSize.A4); //建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, newFileOutputStream(file)); document.open(); //设置中文字体 BaseFont bfChinese =BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); //标题字体风格 Font titleFont = new Font(bfChinese, 12,Font.BOLD); //正文字体风格 Font contextFont = new Font(bfChinese, 10,Font.NORMAL); Paragraph title = newParagraph("标题"); //设置标题格式对齐方式 title.setAlignment(Element.ALIGN_CENTER); title.setFont(titleFont); document.add(title); String contextString ="iText是一个能够快速产生PDF文件的java类库。
" + " \n"//换行 +"iText的java类对于那些要产生包含文本," + "表格,图形的只读文档是很有用的。它的类库尤其与javaServlet有很好的给合。
" +"使用iText与PDF能够使你正确的控制Servlet的输出。"; Paragraph context = newParagraph(contextString); //正文格式左对齐 context.setAlignment(Element.ALIGN_LEFT); context.setFont(contextFont); //离上一段落(标题)空的行数 context.setSpacingBefore(5); //设置第一行空的列数 context.setFirstLineIndent(20); document.add(context); //利用类FontFactory结合Font和Color可以设置各种各样字体样式 Paragraph underline = new Paragraph("下划线的实现",FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 18,Font.UNDERLINE, new Color(0, 0,255))); document.add(underline); // 设置 Table表格 Table aTable = newTable(3); int width[] = { 25, 25, 50}; aTable.setWidths(width);//设置每列所占比例 aTable.setWidth(90); // 占页面宽度90% aTable.setAlignment(Element.ALIGN_CENTER);//居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);//纵向居中显示 aTable.setAutoFillEmptyCells(true); //自动填满 aTable.setBorderWidth(1); //边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); //边框颜色 aTable.setPadding(2);//衬距,看效果就知道什么意思了 aTable.setSpacing(3);//即单元格之间的间距 aTable.setBorder(2);//边框 //设置表头 Cell haderCell = newCell("表格表头"); haderCell.setHeader(true); haderCell.setColspan(3); aTable.addCell(haderCell); aTable.endHeaders(); Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,Color.GREEN); Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据",fontChinese)); cell.setVerticalAlignment(Element.ALIGN_TOP); cell.setBorderColor(new Color(255, 0,0)); cell.setRowspan(2); aTable.addCell(cell); aTable.addCell(newCell("#1")); aTable.addCell(newCell("#2")); aTable.addCell(newCell("#3")); aTable.addCell(newCell("#4")); Cell cell3 = new Cell(new Phrase("一行三列数据",fontChinese)); cell3.setColspan(3); cell3.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell3); document.add(aTable); document.add(newParagraph("\n")); //添加图片 Image.getInstance即可以放路径又可以放二进制字节流 Image img =Image.getInstance("d:\\img01800.jpg"); img.setAbsolutePosition(0,0); img.setAlignment(Image.RIGHT);//设置图片显示位置 img.scaleAbsolute(60, 60);//直接设定显示尺寸 //img.scalePercent(50);//表示显示的大小为原尺寸的50% // img.scalePercent(25,12);//图像高宽的显示比例 //img.setRotation(30);//图像旋转一定角度 document.add(img); document.close(); } public static void main(String[] args){ CreateWordDemo word = newCreateWordDemo(); String file ="d:/demo1.doc"; try{ word.createDocContext(file); } catch (DocumentException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } } }。
五、如何用java将图片插入到word指定位置
以前做过其他office的没做过微软的,不过大同小异
这个你就需要在java中获取到word的某种对象,方法有很多,但是要看你用什么方式调用的office了,如果是某个牌子的中间件,那就用那个中间件的二次开发文档里面应该就有提到这些方法,如果是第三方的jar包,应该也不麻烦,通过jar包中的方法,可能要有一个word的实例创建的过程吧,然后获取到range或者textrange等这些对象(应该是这俩对象……)通过这对象然后找到插入图片的方法,然后传入位置参数(可能是两个数用逗号隔开)
六、请问下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包 试试看看。
转载请注明出处51数据库 » java导出图片到word
还珠囧格