用java处理图片,在图片右下角加一段文字,并且设置文字的颜色,和文字的背景色 各位高手请帮忙解答:用java处理图片,在图片右下角加一段文字,并且设置文字的颜色,和文字的背景色,主要目的是形成文字和图片反色的效果,在线等答案,项目真实需求! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要具体代码? 如果是思路的话我建议你在update方法里面做文章 Graphics drawString(String str, int x, int y) 记得以前做过,但是记不清是用什么函数写的了有可能是这个函数吧 我已经做出来了, 封装到一个方法里面:其实就是就是画一个矩形就能实现功能,然后设置矩形的背景颜色:/** * 1,图片缩放功能 2,在图片文件右下角加上文件目录的名字 * * @param list 文件的集合 * @param widthdist 缩放图片的宽 * @param heightdist 缩放图片的高 * @return list 经过处理后的图片集合 */ public static List<File> reduceImg(Map<String, File> map, int widthdist, int heightdist) { List<File> listFile = new ArrayList<File>(); if (map.size() > 0) { Set<String> set = map.keySet(); for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) { String fileName = iterator.next(); if (!map.get(fileName).isDirectory()) { File imgTarget = null; Image src = null; imgTarget = new File(ConfigUtil.getWorkPath(), "data/GaoGaoMmsTemp/" + map.get(fileName).getName()); try { src = javax.imageio.ImageIO.read(map.get(fileName)); BufferedImage tag = new BufferedImage(widthdist, heightdist, BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_SMOOTH), 0, 0, null); FileOutputStream out = new FileOutputStream(imgTarget); // 把图片写到临时目录 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(tag); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedImage image = null; try { image = ImageIO.read(imgTarget); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Graphics g = image.getGraphics(); ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 去除锯齿(当设置的字体过大的时候,会出现锯齿) g.drawRect(255, 360, image.getHeight()-20, 40) ; g.setColor(Color.white); g.fillRect(255, 360, image.getHeight()-20, 40); String temp = fileName.substring(0, 5); g.setColor(Color.blue); g.setFont(new Font("微软雅黑", Font.BOLD, 50)); // 设置字体 g.drawString(temp, image.getWidth() - 145, image.getHeight()); // 设置ps上去的文字的坐标位置和文字的内容 try { ImageIO.write(image, "JPEG", imgTarget); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } listFile.add(imgTarget); } else { log.info("文件路径错误!"); } } } else { log.info("文件参数为空!"); } System.out.println(listFile); return listFile; } 才开始学java 老是会遇到空指针问题。。。 急!在线等!-java 界面的图出不来,拉一下框架就出了! 怎么把gb2321转换为utf-8 用Struts标签怎么验证附件类型 急求啊 如何用java实现自动批量打印 想装个java开发环境看看,怎么装? Thread.currentThread().setContextClassLoader()问题,肯定给分 LINUX下的Jbuilder6企业版 请问数字签名中用到的HTMLConvert,******,在线等待给分 java可以把应用放到“托盘”里吗? 没有输出 请大家帮忙看看 感谢 怎么截取java文件中的注释
有可能是这个函数吧
/**
* 1,图片缩放功能 2,在图片文件右下角加上文件目录的名字
*
* @param list 文件的集合
* @param widthdist 缩放图片的宽
* @param heightdist 缩放图片的高
* @return list 经过处理后的图片集合
*/ public static List<File> reduceImg(Map<String, File> map, int widthdist, int heightdist)
{
List<File> listFile = new ArrayList<File>();
if (map.size() > 0)
{
Set<String> set = map.keySet();
for (Iterator<String> iterator = set.iterator(); iterator.hasNext();)
{
String fileName = iterator.next();
if (!map.get(fileName).isDirectory())
{
File imgTarget = null;
Image src = null;
imgTarget = new File(ConfigUtil.getWorkPath(), "data/GaoGaoMmsTemp/" + map.get(fileName).getName());
try
{
src = javax.imageio.ImageIO.read(map.get(fileName));
BufferedImage tag = new BufferedImage(widthdist, heightdist, BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream out = new FileOutputStream(imgTarget); // 把图片写到临时目录
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(tag);
out.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} BufferedImage image = null;
try
{
image = ImageIO.read(imgTarget); }
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
Graphics g = image.getGraphics();
((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 去除锯齿(当设置的字体过大的时候,会出现锯齿)
g.drawRect(255, 360, image.getHeight()-20, 40) ;
g.setColor(Color.white);
g.fillRect(255, 360, image.getHeight()-20, 40);
String temp = fileName.substring(0, 5);
g.setColor(Color.blue);
g.setFont(new Font("微软雅黑", Font.BOLD, 50)); // 设置字体
g.drawString(temp, image.getWidth() - 145, image.getHeight()); // 设置ps上去的文字的坐标位置和文字的内容
try
{
ImageIO.write(image, "JPEG", imgTarget);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
listFile.add(imgTarget); }
else
{
log.info("文件路径错误!");
}
}
}
else
{
log.info("文件参数为空!");
}
System.out.println(listFile);
return listFile;
}