java 在引入的java 图片添加文字中 再添加一个java 图片添加文字

1745人阅读
Java(37)
import java.awt.image.BufferedI
import java.io.ByteArrayOutputS
import java.io.F
import java.io.FileOutputS
import java.io.IOE
import javax.imageio.ImageIO;
import org.apache.poi.hssf.usermodel.HSSFClientA
import org.apache.poi.hssf.usermodel.HSSFP
import org.apache.poi.hssf.usermodel.HSSFR
import org.apache.poi.hssf.usermodel.HSSFS
import org.apache.poi.hssf.usermodel.HSSFW
public class TestPOI {
&& &public static void main(String[] args) {
&& &&& &FileOutputStream fileOut =
&& &&& &BufferedImage bufferImg =
&& &&& &try {
&& &&& &&& &// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
&& &&& &&& &ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
&& &&& &&& &bufferImg = ImageIO
&& &&& &&& &&& &&& &.read(new File(
&& &&& &&& &&& &&& &&& &&& &&D:\\8.jpg&));
&& &&& &&& &ImageIO.write(bufferImg, &jpg&, byteArrayOut);
&& &&& &&& &// 创建一个工作薄
&& &&& &&& &HSSFWorkbook wb = new HSSFWorkbook();
&& &&& &&& &HSSFSheet sheet1 = wb.createSheet(&Sheet1&);
&& &&& &&& &// 要导入的图片显示大小198*198像素
&& &&& &&& &HSSFRow row = sheet1.createRow(0);
&& &&& &&& &sheet1.setColumnWidth(0, (int) (35.7 * 198));
&& &&& &&& &row.setHeight((short) (15.625 * 198));
&& &&& &&& &HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
&& &&& &&& &HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, ,
&& &&& &&& &&& &&& &(short) 0, 0, (short) 0, 0);// 表示占满单元格
&& &&& &&& &// 插入图片
&& &&& &&& &patriarch.createPicture(anchor, wb.addPicture(byteArrayOut
&& &&& &&& &&& &&& &.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
&& &&& &&& &fileOut = new FileOutputStream(&d:/test.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();
&& &&& &&& &&& &}
&& &&& &&& &}
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:562961次
积分:4616
积分:4616
排名:第6209名
原创:46篇
转载:126篇
评论:43条
(1)(1)(1)(2)(1)(1)(5)(4)(5)(6)(3)(3)(5)(7)(2)(5)(3)(6)(5)(2)(1)(1)(1)(1)(4)(2)(3)(3)(12)(5)(2)(11)(2)(1)(6)(2)(4)(3)(2)(3)(3)(4)(1)(4)(4)(2)(1)(1)(3)(2)(2)(4)(1)(1)(2)在Java中如何利用Applet来加载图像_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
在Java中如何利用Applet来加载图像
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢java 程序中如何分割图片和对图片其他操作 - Loiy - ITeye博客
博客分类:
package com.langhua.cutF
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.G
import java.awt.color.ColorS
import javax.imageio.ImageIO;
import com.langhua.ImageUtils.ImageU
public class ChangeImageSize
* 缩放图像
* @param srcImageFile 源图像文件地址
* @param result
缩放后的图像地址
* @param scale
* @param flag
缩放选择:true 放大; false 缩小;
public static void scale(String srcImageFile, String result, int scale, boolean flag)
BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件
int width = src.getWidth(); // 得到源图宽
int height = src.getHeight(); // 得到源图长
width = width *
height = height *
width = width /
height = height /
Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
ImageIO.write(tag, "JPEG", new File(result));// 输出到文件流
catch (IOException e)
e.printStackTrace();
* 图像切割
* @param srcImageFile 源图像地址
* @param descDir
切片目标文件夹
* @param destWidth
目标切片宽度
* @param destHeight
目标切片高度
public static void cut(String srcImageFile, String descDir, int destWidth, int destHeight)
ImageFilter cropF
String dir =
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
System.out.println("srcWidth:"+srcWidth);
System.out.println("srcHeight:"+srcHeight);
if (srcWidth & destWidth && srcHeight & destHeight)
Image image = bi.getScaledInstance(srcWidth, srcHeight, Image.SCALE_DEFAULT);
destWidth = 300; // 切片宽度
destHeight = 300; // 切片高度
int cols = 0; // 切片横向数量
int rows = 0; // 切片纵向数量
// 计算切片的横向和纵向数量
if (srcWidth % destWidth == 0)
cols = srcWidth / destW
cols = (int) Math.floor(srcWidth / destWidth) + 1;
if (srcHeight % destHeight == 0)
rows = srcHeight / destH
rows = (int) Math.floor(srcHeight / destHeight) + 1;
// 循环建立切片
for (int i = 0; i & i++)
for (int j = 0; j & j++)
// 四个参数分别为图像起点坐标和宽高
// 即: CropImageFilter(int x,int y,int width,int height)
cropFilter = new CropImageFilter(j * 300, i * 300, destWidth, destHeight);
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(), cropFilter));
BufferedImage tag = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 绘制缩小后的图
g.dispose();
// 输出为文件
dir = descDir + "cut_image_" + i + "_" + j + ".jpg";
File f = new File(dir);
ImageIO.write(tag, "JPEG",f);
System.out.println(dir);
ImageUtils.pressText("水印",dir,"宋体",1,1,25,10,10);
catch (Exception e)
e.printStackTrace();
* 图像类型转换 GIF-&JPG GIF-&PNG PNG-&JPG PNG-&GIF(X)
public static void convert(String source, String result)
File f = new File(source);
f.canRead();
f.canWrite();
BufferedImage src = ImageIO.read(f);
ImageIO.write(src, "JPG", new File(result));
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
* 彩色转为黑白
* @param source
* @param result
public static void gray(String source, String result)
BufferedImage src = ImageIO.read(new File(source));
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
src = op.filter(src, null);
ImageIO.write(src, "JPEG", new File(result));
catch (IOException e)
e.printStackTrace();
* @param args
public static void main(String[] args)
//scale("c:\\test\\456.jpg","C:\\test\\image1.jpg",2,false);
//cut("c:\\1.jpg","C:\\2.jpg",64,64);
//gray("c:\\test\\456.jpg","C:\\test\\image4.jpg");
优化后的图像分割
package com.langhua.cutF
import java.awt.R
import java.awt.image.BufferedI
import java.io.F
import java.io.FileInputS
import java.io.IOE
import java.util.I
import javax.imageio.ImageIO;
import javax.imageio.ImageReadP
import javax.imageio.ImageR
import javax.imageio.stream.ImageInputS
import com.langhua.ImageUtils.ImageU
public class CutImage {
// 源图片路径名称如:c:\1.jpg
// 剪切图片存放路径名称.如:c:\2.jpg
// 剪切点x坐标
// 剪切点宽度
public CutImage() {
public CutImage(int x, int y, int width, int height) {
this.width =
this.height =
* 对图片裁剪,并把裁剪完蛋新图片保存 。
public void cut() throws IOException {
FileInputStream is =
ImageInputStream iis =
// 读取图片文件
is = new FileInputStream(srcpath);
* 返回包含所有当前已注册 ImageReader 的 Iterator,这些 ImageReader 声称能够解码指定格式。
* 参数:formatName - 包含非正式格式名称 . (例如 "jpeg" 或 "tiff")等 。
Iterator&ImageReader& it = ImageIO
.getImageReadersByFormatName("jpg");
ImageReader reader = it.next();
// 获取图片流
iis = ImageIO.createImageInputStream(is);
* iis:读取源.true:只向前搜索.将它标记为 ‘只向前搜索’。 此设置意味着包含在输入源中的图像将只按顺序读取,可能允许
* reader 避免缓存包含与以前已经读取的图像关联的数据的那些输入部分。
reader.setInput(iis, true);
* 描述如何对流进行解码的类
* .用于指定如何在输入时从 Java Image I/O 框架的上下文中的流转换一幅图像或一组图像。用于特定图像格式的插件 将从其
* ImageReader 实现的 getDefaultReadParam 方法中返回 ImageReadParam 的实例。
ImageReadParam param = reader.getDefaultReadParam();
* 图片裁剪区域。Rectangle 指定了坐标空间中的一个区域,通过 Rectangle 对象
* 的左上顶点的坐标(x,y)、宽度和高度可以定义这个区域。
Rectangle rect = new Rectangle(x, y, width, height);
// 提供一个 BufferedImage,将其用作解码像素数据的目标。
param.setSourceRegion(rect);
* 使用所提供的 ImageReadParam 读取通过索引 imageIndex 指定的对象,并将 它作为一个完整的
* BufferedImage 返回。
BufferedImage bi = reader.read(0, param);
// 保存新图片
ImageIO.write(bi, "jpg", new File(subpath));
} finally {
if (is != null)
is.close();
if (iis != null)
iis.close();
* 图像切割
* @param srcImageFile
源图像地址
* @param descDir
切片目标文件夹
* @param destWidth
目标切片宽度
* @param destHeight
目标切片高度 返回一个List,保存九张图片的图片名
public static java.util.List&String& cutImg(String srcImageFile,
String descDir, int destWidth, int destHeight) {
java.util.List&String& list = new java.util.ArrayList&String&(9);
String dir =
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
if (srcWidth & destWidth && srcHeight & destHeight) {
destWidth = 300; // 切片宽度
destHeight = 300; // 切片高度
int cols = 0; // 切片横向数量
int rows = 0; // 切片纵向数量
// 计算切片的横向和纵向数量
if (srcWidth % destWidth == 0) {
cols = srcWidth / destW
cols = (int) Math.floor(srcWidth / destWidth) + 1;
if (srcHeight % destHeight == 0) {
rows = srcHeight / destH
rows = (int) Math.floor(srcHeight / destHeight) + 1;
// 循环建立切片
for (int i = 0; i & i++) {
for (int j = 0; j & j++) {
CutImage cutImage = new CutImage(j * 300, i * 300, 300,
cutImage.setSrcpath(srcImageFile);
dir = descDir + "cut_image_" + i + "_" + j + ".jpg";
cutImage.setSubpath(dir);
cutImage.cut();
list.add("cut_image_" + i + "_" + j + ".jpg");
ImageUtils.pressText("水印", dir, "宋体", 1, 1, 25, 10, 10);
} catch (Exception e) {
e.printStackTrace();
public int getHeight() {
public void setHeight(int height) {
this.height =
public String getSrcpath() {
public void setSrcpath(String srcpath) {
this.srcpath =
public String getSubpath() {
public void setSubpath(String subpath) {
this.subpath =
public int getWidth() {
public void setWidth(int width) {
this.width =
public int getX() {
public void setX(int x) {
public int getY() {
public void setY(int y) {
浏览: 864780 次
来自: 深圳
不不不, 这个您真错了!其实是你引用的那个jsp和本身的jsp ...
你好 Util包没有
你好!我遇到个问题 max_allowed_packet值总是 ...
谢谢大神!【新手】求助 :怎么在swing设计中把图片添加到包里_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:631,329贴子:
【新手】求助 :怎么在swing设计中把图片添加到包里收藏
那个jpg是怎么显示上去的,我自己编写的包里面只有.java文件
有人吗,真心求助
我为什么直接把图片文件拖到包那里就加进去了,太丧失了
复制粘贴就进去了
我也遇到这个问题,谢谢你的回答!!
登录百度帐号推荐应用

我要回帖

更多关于 java怎么添加图片 的文章

 

随机推荐