java给tif格式图片加文字水印?
答案:3 悬赏:50
解决时间 2021-02-23 12:36
- 提问者网友:房东的猫
- 2021-02-22 12:12
如题,网上的方法都是给jpeg或者png等格式图片加水印的,现求一种直接给tif加水印的方法,有木有大神?
最佳答案
- 二级知识专家网友:都不是誰的誰
- 2021-02-22 13:50
package com.coderli.image;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
@SuppressWarnings("restriction")
public final class ImageUtils {
public ImageUtils() {
}
public static void pressText(String pressText, String targetImg,
String fontName, int fontStyle, Color color, int fontSize, int x,
int y) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, width, height, null);
g.setColor(color);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, width - fontSize - x, height - fontSize
/ 2 - y);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
pressText("bbs.coderli.com", "f:/1.tiff", "Times New Romas", Font.PLAIN, Color.BLUE, 22, 150, 20);
}
}这个方法里用的api是支持tiff格式的,你可以试试。
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
@SuppressWarnings("restriction")
public final class ImageUtils {
public ImageUtils() {
}
public static void pressText(String pressText, String targetImg,
String fontName, int fontStyle, Color color, int fontSize, int x,
int y) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, width, height, null);
g.setColor(color);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, width - fontSize - x, height - fontSize
/ 2 - y);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
pressText("bbs.coderli.com", "f:/1.tiff", "Times New Romas", Font.PLAIN, Color.BLUE, 22, 150, 20);
}
}这个方法里用的api是支持tiff格式的,你可以试试。
全部回答
- 1楼网友:承载所有颓废
- 2021-02-22 15:38
没做过,给点建议吧,建议使用jai读写tif文件,用BufferedImage加水印
- 2楼网友:余生继续浪
- 2021-02-22 14:24
去下载一个qq影像,就可以加水印了。
还不不懂处,欢迎追问。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯