Java中怎么在图片上画一个字符串?

就像QQ的登录,那个应该就是在那个按钮图片上画了“登录”两个字吧。... 就像QQ的登录,那个应该就是在那个按钮图片上画了“登录”两个字吧。 展开
 我来答
忘记交作业的孩子
2012-01-13 · 超过16用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:51.8万
展开全部
在QQ登录的界面,如果你要做一个一样的界面的话,用java里面的JFame是可以做到的。
如果你是要在图片上画一个字符串的话,你可以先用“标签”为这个标签添加背景,之后再加文字。这种做法是可以的。加的文字你可以是任意字符串。
更多追问追答
追问
不是这样的。这种方法做出来的效果不好看。
追答
或者你可以用两个标签,一个放在底层,一个放在上层,底层的那个你加图片,上层的你就编辑字符串
百度网友845f74e61
推荐于2018-03-09 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1626万
展开全部
Image srcImg = ImageIO.read(new File("D:\\1.jpg"));
Graphics2D g = buffImg.createGraphics();
g.setFont(new Font(null, Font.BOLD, 16));
g.setColor(Color.BLACK);
g.drawString("hello " , 10, 20);
g.dispose();
FileOutputStream os = new FileOutputStream(targerPath);
ImageIO.write(buffImg, "JPG", os);

10,20 是图片上的坐标,想要什么位置自己调整。
追问
这个我也有试过。不过有一点很奇怪,就是画上去了之后用其它东西盖住可以把画上去的东西抺掉。不知道为什么?
追答
不是很明白,怎么抹掉?
targerPath 是另一个文件了,你都生成文件了,怎么还会抹掉呢?

你是说你把这个图片放到了窗体上,其它的窗体移动到这个窗体上就会抹掉吗?
如果是这样,原因是窗体的repaint方法不会自动调用,原因我也不清楚。
有两个解决办法。
1.窗体添加焦点事件。窗体获得焦点时,调用repaint方法。
2.自己写一个JPanel类,在paint方法中加载图片。然后把这个JPanel放到窗体上,就不会出现抹掉的问题了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pieryon
推荐于2016-06-01 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166869
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
java 给图片添加文字

public class Dest{

public static void main(String [] a){

d.createMark("e8.jpg","e81.jpg","",null, 1,"",100);
//System.out.println(d.createMark("e8.jpg","e81.jpg","",null, 1,"",16));
}
public static boolean createMark(String filePath,String filePath1, String markContent,
Color markContentColor, float qualNum, String fontType, int fontSize) {
markContentColor = Color.gray;
ImageIcon imgIcon = new ImageIcon(filePath);
Image theImg = imgIcon.getImage();
//Image可以获得 输入图片的信息
int width = theImg.getWidth(null);
int height = theImg.getHeight(null);

//800 800 为画出图片的大小
BufferedImage bimage = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
//2d 画笔
Graphics2D g = bimage.createGraphics();
g.setColor(markContentColor);
g.setBackground(Color.white);

//画出图片-----------------------------------
g.drawImage(theImg, 0, 0, null);
//画出图片-----------------------------------

//--------对要显示的文字进行处理--------------
markContent = "中国好男人 www.sego.com";// 文字
AttributedString ats = new AttributedString(markContent);
Font f = new Font(fontType, Font.BOLD, fontSize);
ats.addAttribute(TextAttribute.FONT, f, 0, markContent.length());
AttributedCharacterIterator iter = ats.getIterator();
//----------------------

g.drawString(iter, (int) (width - width+10), (int) (height - height/2));
//添加水印的文字和设置水印文字出现的内容 ----位置
g.dispose();//画笔结束
try {
//输出 文件 到指定的路径
FileOutputStream out = new FileOutputStream(filePath1);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);

param.setQuality(qualNum, true);
encoder.encode(bimage, param);
out.close();
} catch (Exception e) {
return false;
}
return true;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
充鸿光06
2012-01-13 · TA获得超过1380个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:543万
展开全部
晕,那个是一个整体,登录两个字也是图片的内容
更多追问追答
追问
之前我也是这样想的, 不过我找了QQ的一些自带的图片,上面没有。所以我想一定有什么方法可以画上去。
追答
java里有button控件吗?有的话是不是可以setText?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灬卡布达
2015-07-31 · TA获得超过237个赞
知道答主
回答量:60
采纳率:100%
帮助的人:7.1万
展开全部
代码如下:
Image srcImg = ImageIO.read(new File("D:\\1.jpg"));
Graphics2D g = buffImg.createGraphics();
g.setFont(new Font(null, Font.BOLD, 16));
g.setColor(Color.BLACK);
g.drawString("hello " , XX, XX);
g.dispose();
FileOutputStream os = new FileOutputStream(targerPath);
ImageIO.write(buffImg, "JPG", os);
XX处更改为图片坐标
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式