java生成jpg图片 并且实现文字和图片混排

栏目:资讯发布:2023-10-22浏览:2收藏

java生成jpg图片 并且实现文字和图片混排,第1张

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图片 并且实现文字和图片混排

import comsunimagecodecjpegJPEGCodec;import comsunimagecodecjpegJPEGImageEncoder;import javaioBufferedOutputStream;import java...
点击下载
热门文章
    确认删除?
    回到顶部