导航:首页 > 编程语言 > java图片写字

java图片写字

发布时间:2022-09-05 06:15:17

java代码添加背景图片。更改背景颜色!awt或swing!很简单!越简单越好!

设置颜色:

把pan-pan6的Background设为Null,这样他们就变为透明的了,以后只需要改变inquestFrame的颜色就可以改变全部的颜色,代码如下:

//设置整体布局

JPanelpan=newJPanel();

pan.setLayout(newGridLayout(6,1));

pan.add(pan1);

pan.add(pan2);

pan.add(pan3);

pan.add(pan4);

pan.add(pan5);

pan.add(pan6);

pan.setBackground(null);

pan1.setBackground(null);

pan2.setBackground(null);

pan3.setBackground(null);

pan4.setBackground(null);

pan5.setBackground(null);

pan6.setBackground(null);

r1.setBackground(null);

r2.setBackground(null);

inquestFrame.setBackground(Color.LIGHT_GRAY);

inquestFrame.setContentPane(pan);

inquestFrame.setSize(300,250);

inquestFrame.setVisible(true);

设置图片需要改的比较多,自己比较那不一样吧:

importjava.awt.Graphics;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.net.URL;

importjavax.swing.ButtonGroup;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JPanel;

importjavax.swing.JRadioButton;

importjavax.swing.JTextField;

publicclassInquest{

JFrameinquestFrame;

JLabellab1,lab2,lab3,lab4,lab5,lab6;

JTextFieldtext1,text2,text4,text5,text6;

JRadioButtonr1,r2;

JButtoninqButton;

publicInquest(){

inquestFrame=newJFrame("教育经历管理系统-查询窗口");

MyPanelpan1=newMyPanel();

lab1=newJLabel("请输入编码:");

text1=newJTextField(10);

inqButton=newJButton("查询");

inqButton.addActionListener(newButtonHandler());

pan1.add(lab1);

pan1.add(text1);

pan1.add(inqButton);

MyPanelpan2=newMyPanel();

lab2=newJLabel("姓名:");

text2=newJTextField(10);

pan2.add(lab2);

pan2.add(text2);

MyPanelpan3=newMyPanel();

lab3=newJLabel("性别:");

r1=newJRadioButton("男");

r2=newJRadioButton("女");

//把两个单选按钮放到一个群组中,保持二选一

ButtonGroupgroup=newButtonGroup();

group.add(r1);

group.add(r2);

pan3.add(lab3);

pan3.add(r1);

pan3.add(r2);

MyPanelpan4=newMyPanel();

lab4=newJLabel("单位:");

text4=newJTextField(10);

pan4.add(lab4);

pan4.add(text4);

MyPanelpan5=newMyPanel();

lab5=newJLabel("职位:");

text5=newJTextField(10);

pan5.add(lab5);

pan5.add(text5);

MyPanelpan6=newMyPanel();

lab6=newJLabel("年龄:");

text6=newJTextField(10);

pan6.add(lab6);

pan6.add(text6);

//设置整体布局

MyPanelpan=newMyPanel();

pan.setLayout(newGridLayout(6,1));

pan.add(pan1);

pan.add(pan2);

pan.add(pan3);

pan.add(pan4);

pan.add(pan5);

pan.add(pan6);

pan.setBackground(null);

pan1.setBackground(null);

pan2.setBackground(null);

pan3.setBackground(null);

pan4.setBackground(null);

pan5.setBackground(null);

pan6.setBackground(null);

r1.setBackground(null);

r2.setBackground(null);

MyPanelpan0=newMyPanel();

pan0.setPreferredSize(pan.getPreferredSize());

pan0.setLayout(null);

pan.setBounds(0,0,pan.getPreferredSize().width,pan.getPreferredSize().height);

URLurl=Inquest.class.getResource("Winter.jpg");

ImageIconimg=newImageIcon(url);

JLabellab=newJLabel(img);

lab.setBounds(0,0,img.getIconWidth(),img.getIconHeight());

pan0.add(pan);

pan0.add(lab);

inquestFrame.setContentPane(pan0);

inquestFrame.pack();

inquestFrame.setVisible(true);

}

{

publicvoidpaint(Graphicsg){

paintChildren(g);

}

}

publicvoidsetBack(){

((JPanel)inquestFrame.getContentPane()).setOpaque(false);

//Winter.jpg这个图片的位置要跟当前这个类是同一个包下

URLurl=Inquest.class.getResource("Winter.jpg");

ImageIconimg=newImageIcon(url);

JLabelbackground=newJLabel(img);

inquestFrame.getLayeredPane().add(background,newInteger(Integer.MIN_VALUE));

background.setBounds(0,0,img.getIconWidth(),img.getIconHeight());

}

{

publicvoidactionPerformed(ActionEvente){

//生成SQL语句

Strings="select*frominformationwhereid="+"'"+text1.getText()+"'";

Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";

Stringurl="jdbc:odbc:test";

//DBdb=newDB(driver,url,"sa","");

//ResultSetrs=db.query(s);

//try{

//while(rs.next()){

//text2.setText(rs.getString(2));

//Stringsex=rs.getString(3);

//if(sex.trim().equals("男"))

//r1.setSelected(true);

//else

//r2.setSelected(true);

//

//text4.setText(rs.getString(4));

//text5.setText(rs.getString(5));

//text6.setText(rs.getString(6));

//}

//}catch(Exceptione2){

//e2.printStackTrace();

//}

}

}

publicstaticvoidmain(Stringargs[]){

newInquest();

}

}

Ⅱ 怎样用JAVA实现电子印章

参考如下代码
package com.wonders.cop.billing.util;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.imageio.ImageIO;
public class ImageMarkLogoUtil {
// 水印透明度
private static float alpha = 1f;
// 水印横向位置
private static int positionWidth = 82;
// 水印纵向位置
private static int positionHeight = 545;
// 水印文字字体
private static Font font = new Font("宋体", Font.PLAIN, 13);
// 水印文字颜色
private static Color color = Color.black;
public static void main(String[] args) {
String srcImgPath = "d:/888880002302900_web.jpg";
String targerTextPath = "d:/qie_text.jpg";
ImageMarkLogoUtil
.markImageByTexts(testValue(),
BillDetailImagePosition.getPosition("888880002302900"), srcImgPath,
targerTextPath);
}
public static Map testValue() {
Map<String, String> value = new HashMap<String, String>();
value.put("feedPrice", "15.1");
value.put("feedCount", "20");
value.put("nowNum", "124");
value.put("drainageCount", "55");
value.put("drainagePrice", "1.5");
value.put("feedCost", "66");
value.put("cost", "66");
value.put("drainageCost", "100");
value.put("barcode", "10101010101010101");
value.put("nextCopy", "2014-12-10");
value.put("waterType", "居民生活用水");
value.put("meterReader", "测试人员");
value.put("Number", "741sg");
value.put("prevCarryOver", "0.25");
value.put("nowCarryOver", "2.12");
value.put("openDate", "20141002");
value.put("nextMonth", "201402 ");
value.put("remark", "您缴付的2013年03月30.80元水费,我公司已收到,谢谢!");
value.put("detailStatus", "00");
value.put("billStatus", "00");
value.put("prevMonth", "201406");
value.put("lastPayDate", "20140112");
value.put("companyName", "市北水");
value.put("type", "1");
value.put("amount", "58.1");
value.put("address", "浦秀路220弄10号101");
value.put("year","2014");
value.put("month", "04");
value.put("billId", "11111");
value.put("account", "38445450");
value.put("companyId", "888880002302900");
value.put("realName", "姚航");
return value;
}
/**
* 给图片添加水印文字、可设置水印文字的旋转角度
*
* @param logoText
* @param srcImgPath
* @param targerPath
* @param degree
*/
public static void markImageByTexts(Map<String, String> value,
Map<String, String[]> position, String srcImgPath, String targerPath) {
InputStream is = null;
OutputStream os = null;
try {
// 1、源图片
Image srcImg = ImageIO.read(new File(srcImgPath));
BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),
srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
// 2、得到画笔对象
Iterator<String> positionIter = position.keySet().iterator();
String key = "";
String logotext = "";
String[] xy;
while (positionIter.hasNext()) {
key = positionIter.next();
xy = position.get(key);
logotext = value.get(key);
System.out.println("key:"+key+",value:"+logotext);
if (xy != null && xy.length == 2)
printText(srcImg, buffImg, logotext,
Integer.valueOf(xy[0]), Integer.valueOf(xy[1]));
}
// 10、生成图片
os = new FileOutputStream(targerPath);
ImageIO.write(buffImg, "JPG", os);
System.out.println("图片完成添加水印文字");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != is)
is.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if (null != os)
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 在图片上打印文字
*
* @param srcImg
* @param buffImg
* @param logoText
* @return
*/
private static void printText(Image srcImg, BufferedImage buffImg,
String logoText, Integer positionX, Integer PositionY) {
Graphics2D g = buffImg.createGraphics();
// 3、设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(
srcImg.getScaledInstance(srcImg.getWidth(null),
srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
// 5、设置水印文字颜色
g.setColor(color);
// 6、设置水印文字Font
g.setFont(font);
// 7、设置水印文字透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
alpha));
// 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y)
g.drawString(logoText, positionX, PositionY);
// 9、释放资源
g.dispose();
}
}

Ⅲ java 在图片上写字,当字长度超过图片宽度,文字自动换行,并且均居中!

要自己量度文字相对该字体的宽度,自己去换行的。
FontMetrics
getFontMetrics()
Gets the font metrics of the current font.

abstract FontMetrics
getFontMetrics(Font f)
Gets the font metrics for the specified font.
得到FontMetrics,再去量度文字的宽度等信息

Ⅳ 怎么弄这种图片里面的选择图片框;我在用java 关于java的图片

利用样式 和 事件应该可以吧

Ⅳ 如何利用java在图片上添加文字

// 读取模板图片内容
BufferedImage image = ImageIO.read(new FileInputStream("c:\\test.jpg"));
Graphics2D g = image.createGraphics();// 得到图形上下文
g.setColor(Color.BLACK); // 设置画笔颜色
// 设置字体
g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, 15));// 写入签名
// 下面这一句中的43,image.getHeight()-10可以改成你要的坐标。
g.drawString("这是新加入的文字", 43, image.getHeight() - 10);
g.dispose();
FileOutputStream out = new FileOutputStream("c:\\test1.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
希望我的回答能帮助你 谢谢 呵呵 答案补充 肯定了 在一张纸上写字 肯定会自动换行的 否则写外面?逻辑都通不过去~ 答案补充 把你的意思说出了 是不是随便的写字然后就提交 就把字写在了图片上还是?多少字 有没有约束? 答案补充 g.drawString("这是新加入的文字", 43, image.getHeight() - 10);

在这个做处理 你规定了字体的大小 那么获取字符的长度*大小 一次判断不要大于宽度 否则image.getHeight() - 10++ 你试试 应该可以的 我这里没有Eclipse 答案补充 public class mains {

/**
* @param args
*/

private static int fontsize = 15;

static String jj(String str)
{
String sContent = str;
sContent=sContent.replaceAll(" "," ");
sContent=sContent.replaceAll("<br/>","/");
sContent=sContent.replaceAll("<br>","/");

return sContent;
} 答案补充 static void hh(String str)
{
BufferedImage image;
try {
image = ImageIO.read(new FileInputStream("E:\\dian zi za /789.jpg"));
Graphics2D g = image.createGraphics();// 得到图形上下文
g.setColor(Color.BLACK); // 设置画笔颜色
// 设置字体
g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, fontsize));// 写入签名
// 下面这一句中的43,image.getHeight()-10可以改成你要的坐标。

String text = jj(str); 答案补充 String [] text1 = text.split("/");

int h = image.getHeight();
int w = image.getWidth();
for(int i=0;i<text1.length;i++)
{

g.drawString(text1[i],0,fontsize+i*fontsize);
}
g.dispose();
FileOutputStream out = new FileOutputStream("E:\\dian zi za /789.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close(); 答案补充 public static void main(String[] args) {
// TODO Auto-generated method stub

hh("sdakljsdhww<br/>asdasd<br/>a");
}

}
试试 可以换行 答案补充 关于 图片的尺寸以及字体是否超出 你自己试着解决下 不要过于依赖问

Ⅵ 关于JAVA.AWT里面 BufferedImage 创建图片的问题

再使用BufferedImage 的 getGraphics()得到 Graphics,就可以画、可以写字、可以…………

ImageIO,可以将BufferedImage 转成流

Ⅶ java使用Graphics2D给图片上写字

你的电脑系统上要有那个字体,java才可以设置。
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment ();
String [] fontList = ge.getAvailableFontFamilyNames ();

用这个看看你电脑上的字体吧。

Ⅷ java awt 圆内写字

Graphics2D g2d;
g2d.rotate-Math.PI*0.5);
//可以任意旋转角度
再把文字逐个画上去

Ⅸ java 如何在画布某个坐标上写字

canvas中有一个函数translate()是用来实现画布平移的,画布的原状是以左上角为原点,向左是x轴正方向,向下是y轴正方向,如下图所示,也就是(0,0)。

Ⅹ java如何让jlable中的图片上写字和现显示JTextField

图片有getGraphics方法,得到的Graphics对象有drawString方法可以写字。
至于重叠么,SWING应该是不能直接显示图片,默认也不能把图片作为背景(除非你自己去覆盖paint方法),那么,去看看JLayeredPane。把图片放进JLabel,放在底层,JTextField放在JLayeredPane上面一点的层次,注意要去查JLayeredPane的API,记得设置层次。

阅读全文

与java图片写字相关的资料

热点内容
unix网络编程卷4 浏览:805
找靓机app下单什么时候发货 浏览:411
android一个应用两个进程 浏览:801
linux硬盘复制 浏览:806
php图片服务器搭建 浏览:798
下载压缩文件怎么打开 浏览:192
新建文件夹叫什么名字 浏览:565
windows20的开机命令 浏览:332
微信一般在电脑的那个文件夹 浏览:509
go在win7下编译特别慢 浏览:256
光遇ios耳机安卓为什么没有 浏览:904
小米手机桌面文件夹经常自动散开 浏览:607
小米电话手表用什么app进行设置 浏览:265
虚拟打印机pdf下载 浏览:671
jdk编译运行方法 浏览:459
android执行shell命令 浏览:349
程序员头像女 浏览:57
有什么可以变头发颜色的app 浏览:935
玩具解压屋游戏下载 浏览:849
我的世界拔刀剑服务器地址id 浏览:891