小编很荣幸参加了CSDN的第十期Java实训训练营,认识来漂亮的小姐姐,还有大牛老师(翦老师),采用的就是职场化的模式训练大家进行Java的学习与理解,好了就跟小编一起来看看这次的内容模拟人生吧!
目录
模拟人生(启动起来,运行试一试)
打开文件夹
代码进行修改(解压路径选择在jdkd的安装文件夹下哦!)
路径修改
通过提供代码修改自己想改的程序(在图片添加文子水印)
扩展图片水印 (缺点在背景图片上操作,需要备份)
遇到的报错(无效的源发行版: 11错误)
收获:
前提 (小编以前总结文章,欢迎大家浏览与指点):
Java的起源与历史https://blog.csdn.net/weixin_47514459/article/details/115532199https://blog.csdn.net/weixin_47514459/article/details/115532199
jdk安装--(安装8.0及其以上都可以哦)https://blog.csdn.net/weixin_47514459/article/details/115552283https://blog.csdn.net/weixin_47514459/article/details/115552283IDEA的介绍与安装(Java集成开发工具,,建议在官网下载,支持正版)https://blog.csdn.net/weixin_47514459/article/details/118420939
https://blog.csdn.net/weixin_47514459/article/details/118420939
1,打开CSDN训练营发给小编的文件夹(因为小编用过Idea所以就打开CSDN文件夹就可以了,如果第一次使用,点击“加号”就可以了)。
2,选择文件夹(下面有黑色才有Java文件哦!不要忘记自己解压的路径哦!)
现象:(当关闭,下次打开还是这个文件夹哦!)
一般情况下别人的路径可能你没有,所以就防止找不到你需要的文件,修改路径十必须的.
public class RunMain {
public static void main(String[] args) {
System.out.println("_____ 小罗的体验课, 模拟人生 ______ \n");
// 字体库
File fontFile = new File("文字库的绝对路径");
File backgroundImage = new File("背景图片绝对路径"); // 背景图片
String title = "张三因字写得好被霸道总裁看上"; // 文字标题
String outputImage = "绝对路径\\名称.jpg"; // 合成的图片位置及名称
mylifeOne(backgroundImage, title, outputImage, fontFile); // 执行人生第一站图片合成
}
private static void mylifeOne (File backgroundImage, String title, String outputImage, File fontFile){
try {
Font font = Font.createFont(Font.TRUETYPE_FONT, fontFile); //使用字体文件
Font f = font.deriveFont(Font.PLAIN, 41); //41字体大小
//font.
ImgUtil.pressText(//
backgroundImage,
FileUtil.file(outputImage),
title,
Color.WHITE,
f, //字体
75, //x坐标修正值。 默认在中间,偏移量相对于中间偏移
245, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
0.8f//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
);
System.out.println("测试成功");
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class RunMain {
public static void main(String[] args) {
System.out.println("_____ 小罗的体验课, 模拟人生 ______ \n");
String backgroundImage = "设置的背景图片"; // 背景图片
String myImage = "水印图片";
pressImage(myImage,backgroundImage,210,80); // 图片合成
}
ublic final static void pressImage(String myImage, String backgroundImage,
int x, int y) {
try {
File _file = new File(backgroundImage);
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);
// 水印文件
File _filebiao = new File(myImage);
Image src_biao = ImageIO.read(_filebiao);
int wideth_biao = src_biao.getWidth(null);
int height_biao = src_biao.getHeight(null);
g.drawImage(src_biao, wideth - wideth_biao - x, height
- height_biao - y, wideth_biao, height_biao, null);
g.dispose();
FileOutputStream out = new FileOutputStream(backgroundImage);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
原因:小编使用的是JDK8.0版本,而文件夹中的JDK为11.
解决部分:file——>settings——>build、execution、deployment----compiler—java compiler
1,增加自己对问题产生了解兴趣和提高解决能力。
2,在Java中“\”代表转义,不需要转义时可以“\\”代表“\”,替代路径“\”.