java生成jpg图片 并且实现文字和图片混排
import comsunimagecodecjpegJPEGCodec;
import comsunimagecodecjpegJPEGImageEncoder;
import javaioBufferedOutputStream;
import javaioFileOutputStream;
import javaawtimageBufferedImage;
import javaawt;
import javaxswingImageIcon;
public class ChartGraphics {
BufferedImage image;
void createImage(String fileLocation) {
try {
FileOutputStream fos = new FileOutputStream(fileLocation);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder encoder = JPEGCodeccreateJPEGEncoder(bos);
encoderencode(image);
bosclose();
} catch (Exception e) {
eprintStackTrace();
}
}
public void graphicsGeneration(String name, String id, String classname, String imgurl) {
int imageWidth = 500;//的宽度
int imageHeight = 400;//的高度
image = new BufferedImage(imageWidth, imageHeight, BufferedImageTYPE_INT_RGB);
Graphics graphics = imagegetGraphics();
graphicssetColor(ColorWHITE);
graphicsfillRect(0, 0, imageWidth, imageHeight);
graphicssetColor(ColorBLACK);
graphicsdrawString("姓名 : " + name, 50, 75);
graphicsdrawString("学号 : " + id, 50, 150);
graphicsdrawString("班级 : " + classname, 50, 225);
//ImageIcon imageIcon = new ImageIcon(imgurl);
//graphicsdrawImage(imageIcongetImage(), 230, 0, null);
//改成这样:
BufferedImage bimg = null;
try {
bimg = javaximageioImageIOread(new javaioFile(imgurl));
} catch (Exception e) {}
if(bimg!=null)
graphicsdrawImage(bimg, 230, 0, null);
graphicsdispose();
createImage("G:\\TDDOWNLOAD\\hehejpg");
}
public static void main(String[] args) {
ChartGraphics cg = new ChartGraphics();
try {
cggraphicsGeneration("ewew", "1", "12", "C:/Documents and Settings/Administrator/My Documents/My Pictures/7jpg");
} catch (Exception e) {
eprintStackTrace();
}
}
}
如果是普通切换的话,直接定义一个int值,根据int值的不同 来画不同的东西就可以了\x0d\int index;\x0d\switch(index){\x0d\ case 0:\x0d\ gdrawImage(a,0,0,20); \x0d\ break;\x0d\ case 1:\x0d\ g,drawImage(b,0,0,20);\x0d\ break;\x0d\ \x0d\}\x0d\ \x0d\如果用渐变效果的话,创建一个数组记录下一张要话的的所有RGB值,初始设置所有像素点的透明度为100%,即完全透明,然后一点点的把透明度降低,直到为0,这样就把第二章用渐变的方法绘制出来了,这时就可以不用画第一张了。
为实现此意图需要分三段来实现:
1。 初始化: Image[] img=new Image[n];
for(int i=0;i<n;i++)循环读取装入文件
img[i]=ToolkitgetDefaultToolkit()createImage()//装入位置
}
2 启动变换与刷新界面线程
run(){//线程入口
while(flag){
index++;
index%=n;(或写成if(index>n-1)index=0;)
repiant();//重绘
sleep(时间)//注意要trycatch
}
}
3 绘图,在指定x,y位置画图
int index=0;
public void paint(Graphics g){
gdrawImage(img[index],x,y,this);
}
总结:
paint()方法专业绘图,就一条语句,切不可太复杂,要符合MVC模式
逻辑改变都要写到线程run方法中去,让run来改变当前需要显示的
如此 run负责逻辑,paint负责视图,符合MVC
不知是否是你想要的答案
java压缩比为1
java压缩,按照比例进行压缩
publicstaticvoidmain(String[]args){
try{
//所在路径
BufferedImagetemplateImage=(newFile("C:\\Users\\晏丁丁\\Pictures\\1png"));
//原始的长度和宽度
intheight=();
intwidth=();
//通过比例压缩
floatscale=05f;
//通过固定长度压缩
/intdoWithHeight=100;
intdowithWidth=300;/
//压缩之后的长度和宽度
intdoWithHeight=(int)(scaleheight);
intdowithWidth=(int)(scalewidth);
BufferedImagefinalImage=newBufferedImage(dowithWidth,doWithHeight,_INT_RGB);
()drawImage((dowithWidth,doWithHeight,_SMOOTH),0,0,null);
//输出路径,以及名
FileOutputStreamfileOutputStream=newFileOutputStream("D:/image/");
JPEGImageEncoderencoder=(fileOutputStream);
(finalImage);
();
}catch(IOExceptione){
eprintStackTrace();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
文章知
java如何实现把一个大压缩到指定大小的且长宽比不变?java要实现把一个大压缩到指定大小的且长宽比不变可以尝试以下操作:
建立一个AffineTransform
AffineTransform(doublem00,doublem10,doublem01,doublem11,doublem02,doublem12)
转换矩阵,缩放比较简单(矩阵可以干很多事情,想做图像处理软件可以研究下)
[x'][m00m01m02][x][m00x+m01y+m02]
[y']=[m10m11m12][y]=[m10x+m11y+m12]
[1][001][1][1]
10倍比较难算(根号10啊,当然你想算也行),9倍好点(9的开方是3),m00为1/3,m01为0,m02为0,m10为0,m11为1/3,m12为0。
再建一个AffineTransformOp,把上面的转换传进去
AffineTransformOp(AffineTransformxform,intinterpolationType)
最后调用AffineTransformOp的BufferedImagefilter(BufferedImagesrc,BufferedImagedst),src传原,返回值就是想要的Image,注意是返回值,不是dst,不明白可以看下JavaAPI
java中gui界面设置背景怎么让压缩java中gui界面设置背景文件格式转换框架完让压缩。一种是用Graphics+文件格式转换框架完成,这种麻烦,代码量多一些压缩出的质量会更好,另一种是用Google的一个开源框架thumbna。
英语家谱画好看又简单步骤如下:
工具:画笔、画纸。
1、首先,先介绍一下亲族关系最基础的记号表。
2、掌握了基本的记号概念后,就可以尝试着去做一张完整的族谱图了。
家谱介绍
家谱:又称族谱、宗谱等。是一种以表谱形式,记载一个家族的世系繁衍及重要人物事迹的书。家谱是一种特殊的文献,就其内容而言,是中华文明史中具有平民特色的文献,记载的是同宗共祖血缘集团世系人物和事迹等方面情况的历史图籍。
据研究表明,中华古姓来源于图腾崇拜,系氏族徽号或标志。家谱属珍贵的人文资料,对于历史学、民俗学、人口学、社会学和经济学的深入研究,均有其不可替代的独特功能。
经历了历朝历代的连年战乱和社会动荡,历史上传世的家谱几乎丧失殆尽,许多家族的世系也因此断了线、失了传。流传至今的古代家谱,大多是明清两代纂修。在我国明清时期,出现了专门替人伪造家谱世系的“谱匠”。
家谱名称繁多,大致有宗谱、世谱、族谱、家乘、祖谱、谱牒、宗谱、会通谱、统宗谱、支谱、房谱等称法。皇帝的家谱称玉牒,如新朝玉牒、皇宋玉牒。家谱是记载某个姓氏家族子孙世系传承之书,具有区分家族成员血缘关系亲疏远近的作用,是中国古代宗法制度的产物。
java生成jpg图片 并且实现文字和图片混排
本文2023-10-22 12:41:43发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/313625.html