如何实现把文字和图片合成一张图片

xiyuanna 2009-02-03 11:32:11
加精
比如我现在 要把我这个字和一张图片放到一起组成一张新图,应该怎么实现阿
...全文
14021 137 打赏 收藏 转发到动态 举报
写回复
用AI写文章
137 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
二楼好方法啊!
浅巷丶长歌 2012-09-27
  • 打赏
  • 举报
回复
学习了 没准以后用的到
david369993 2012-09-25
  • 打赏
  • 举报
回复
Mark
helloguoxing 2012-08-09
  • 打赏
  • 举报
回复
public static void htmlToImage(String str, String fileName){
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadHtml(str);
imageGenerator.saveAsImage(fileName);
}

---顺便请教各位大侠个问题,如何将A图片与B图片分上下合成一张图片呢
helloguoxing 2012-08-09
  • 打赏
  • 举报
回复
添加水印只是覆盖到原图上的。
Muiz_chen 2012-07-05
  • 打赏
  • 举报
回复
不是有简单的方法嘛。。。就是直接用控制台搞定的那个
s478853630 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 100 楼 的回复:]
引用92楼,如果不是文字,而是图片怎么改啊?
[/Quote]
看代码:
/**
* 绘制水印
* @param imgPath 图片路径(物理路径)
* @param waterPath 水印图片路径(物理路径)
* */
public void water(String imgPath, String waterPath) {
try {
String extend = imgPath.substring(imgPath.lastIndexOf("."));
if (!".gif".toLowerCase().equals(extend)) {// 如果图片不是gif类型就加水印
BufferedImage src = ImageIO.read(new File(imgPath));
int width = src.getWidth();
int height = src.getHeight();
BufferedImage water = ImageIO.read(new File(waterPath));
int waWidth = water.getWidth();
int waHeight = water.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics graph = image.createGraphics();
graph.drawImage(src, 0, 0, width, height, null);
if(height > waHeight * 2 && width > waWidth * 2) {
graph.drawImage(water, 0, height-waHeight, waWidth, waHeight, null);
graph.dispose();
OutputStream out = new FileOutputStream(imgPath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.flush();
out.close();
}
image.flush();
water.flush();
src.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
zlb0hao 2012-06-11
  • 打赏
  • 举报
回复
添加水印,学习了!
Keybo-X 2012-04-08
  • 打赏
  • 举报
回复
用ps可以,若要点击文字或图片跳转页面,算好文字或图片的位置,点击调用onclick方法即可。
小格调100 2012-03-30
  • 打赏
  • 举报
回复
/**
*
*/
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import javax.imageio.*;

public class ImgBean {
public static void ImgYin(String s, String ImgName) {
byte[] bytes = null;
try {
String str = s;
File _file = new File(ImgName);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(Color.black);
g.setFont(new Font("宋体", Font.PLAIN, 20));

g.drawString(str, wideth - 150, height - 10);
g.dispose();
ByteArrayOutputStream out1 = new ByteArrayOutputStream();
saveImage(image, out1);
bytes = out1.toByteArray();
out1.close();
FileOutputStream out2 = new FileOutputStream(ImgName);
out2.write(bytes);
out2.close();
} catch (Exception e) {
System.out.println(e);
}
}

public static void saveImage(BufferedImage img, OutputStream out1)
throws Exception {
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out1);
encoder.encode(img);
}

public static void main(String[] args) {
ImgYin("我要加的水印", "d:/testP.jpg");
System.out.println("over");
}
}
小格调100 2012-03-30
  • 打赏
  • 举报
回复
/**
*
*/
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import javax.imageio.*;

public class ImgBean {
public static void ImgYin(String s, String ImgName) {
byte[] bytes = null;
try {
String str = s;
File _file = new File(ImgName);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(Color.black);
g.setFont(new Font("宋体", Font.PLAIN, 20));

g.drawString(str, wideth - 150, height - 10);
g.dispose();
ByteArrayOutputStream out1 = new ByteArrayOutputStream();
saveImage(image, out1);
bytes = out1.toByteArray();
out1.close();
FileOutputStream out2 = new FileOutputStream(ImgName);
out2.write(bytes);
out2.close();
} catch (Exception e) {
System.out.println(e);
}
}

public static void saveImage(BufferedImage img, OutputStream out1)
throws Exception {
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out1);
encoder.encode(img);
}

public static void main(String[] args) {
ImgYin("我要加的水印", "d:/testP.jpg");
System.out.println("over");
}
}
d41741 2012-02-02
  • 打赏
  • 举报
回复
厉害哦
xxzf426214 2011-10-29
  • 打赏
  • 举报
回复
膜拜高人啊
疯狂的毛毛雨 2011-09-22
  • 打赏
  • 举报
回复
mark
llh_624 2011-09-09
  • 打赏
  • 举报
回复
mark~~
msgo1 2011-09-08
  • 打赏
  • 举报
回复
收藏日后定有大用啊
wangziwangzi1987 2011-08-30
  • 打赏
  • 举报
回复
学习中
QQ371496669 2011-08-10
  • 打赏
  • 举报
回复
向前辈学习
绿素潭竹 2011-07-23
  • 打赏
  • 举报
回复
学习了
zhanglw_origin 2011-04-14
  • 打赏
  • 举报
回复
顶2楼,找了好久才找到啊...
加载更多回复(103)
LayeredForm : 支持窗体动画特效,透明,可以和LayeredControl实现任意透明效果等。。。包含LayeredWindowForm的功能 支持一部分带有Paint事件的普通控件,但是不能实现普通控件的背景透明效果! 控件类:Controls HotKey:支持全局热键绑定,事件驱动,可以开启和关闭 LayeredButton:按钮控件,支持按钮颜色设置,图片按钮,如果只设置一张正常状态下的按钮图片,则有鼠标移入加亮效果和鼠标按下变暗效果。边框设置,文字效果设置。 LayeredCheckButton:对LayeredButton的扩展,支持状态切换。 LayeredDragBar:支持对父容器的尺寸拖拽调整 LayeredFlashBox:支持透明Flash播放(当前版本不可用,请勿使用!) LayeredLabel:对文字的显示,文字效果设置 LayeredListBox:支自定义列表项目,支持横向和纵向滚动,支持平滑滚动。 LayeredPanel:在Layered模式下的容器控件 LayeredPictureBox:支持Gif播放,支持多张图片合成动画播放。播放Gif时候不要频繁暂停和播放动画,容易导致线程阻塞。 LayeredTextBox:Layered模式下的文本编辑器。支持水印文字设置 LayeredTrackBar:进度条控件,支持图片进度条定义 动画类:Animations 通过设置LayeredForm的Animation.Effect属性来定义窗体动画特效。 包含了以下特效类:BlindWindowEffect、FadeinFadeoutEffect、GradualCurtainEffect、LevelScrollEffect、RandomCurtainEffect、RotateZoomEffect、ThreeDTurn、ZoomEffect 可以通过实现IEffects接口来实现自定义特效 DirectUI类:DirectUI 包含几个DirectUI控件。用于对以上控件的扩展和美化。部分LayeredControl包含DUIControl属性可以向其添加DirectUI控件。支持通过集合编辑器里面添加,只是不能在集合编辑器里面绑定事件,需要手动写代码绑定。通过集合编辑器添加的控件不一定能马上在设计器里看到效果,因为会有图像缓存,可能需要尝试调整控件大小等方式强制控件重绘,就可以看到效果了。 LayeredControl可以支持在普通窗体上使用。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧