这个程序没有任何的使用价值,起码我这么认为,因为malab应付这个任务
* 也就两行的代码就搞定了,写这个代码的目的完全是因为我们组里面他们写了个程序
自认为注释还是比较清楚的!!
* 也就两行的代码就搞定了,写这个代码的目的完全是因为我们组里面他们写了个程序
* 生成一个渐变的柱状图,我就是好奇的想写一写
生成的结果可以看下图片效果,具体柱状图的颜色我没有特别细腻的调,将就看一下效果
代码如下:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class a
{
public static void main(String[] argv)
{
new create_img();
}
}
class create_img
{
public create_img()
{
try
{
Font myfont = new Font("宋体", Font.ITALIC, 22);
float []number = {0,0,0,0,0,0,0,0,0,0};
for(int i=0;i<10;i++)
{
number[i] = i+1;
}
int max = 10;
Toolkit tk = Toolkit.getDefaultToolkit();
//得到屏幕的长和宽
int width = (int)tk.getScreenSize().getWidth();
int height = (int)tk.getScreenSize().getHeight();
//图像大小
BufferedImage image = new BufferedImage(width/2, height/2,BufferedImage.TYPE_INT_BGR);
Graphics g = image.getGraphics();
g.setColor(new Color(255, 255,255));
g.fillRect(1, 1, width/2 - 1, height/2 - 1);
g.setColor(new Color(255, 255,255));
g.drawRect(0, 0, width/2 - 1, height/2 - 1);
g.setFont(myfont);
g.setColor(new Color(255, 26,135));
Color c = new Color(227, 227, 227);
for(int i=0;i<number.length;i++)
{
//10个柱状图外壳
g.setColor(c);
g.fillRect(72+(33+40)*i, 54, 33, 133);
g.setColor(c);
g.drawRect(72+(33+40)*i, 54, 33, 133);
Color myc = null;
//颜色数组
myc= new Color(10+20*i,10,20*i);
g.setColor(myc);
//颜色柱状图
g.fillRect(72+(33+40)*i, 54+(133-(int)Math.round(133*(number[i]/max))), 33, (int)Math.round(133*(number[i]/max)));
g.setColor(myc);
g.drawRect(72+(33+40)*i, 54+(133-(int)Math.round(133*(number[i]/max))), 33, (int)Math.round(133*(number[i]/max)));
}
c = new Color(181, 181, 181);
//10个柱状图的顶端zifuchuan
for(int i = 0;i<number.length;i++){
if(i==0){
g.setColor(c);
g.setFont(myfont);
g.drawString(number[i]+"s", 72,48);
}else{
g.setColor(c);
g.setFont(myfont);
g.drawString(number[i]+"s", 72+(33+40)*i,48);
}
}
//释放图像所包含的资源
g.dispose();
String filename = "D:\\1.jpg";
File file = new File(filename);
if(!file.exists())
{
file.createNewFile();
}
//将图片数据流写入到文件中
FileOutputStream s = new FileOutputStream(file);
ImageIO.write(image, "JPEG", s);
}catch(IOException e)
{
e.printStackTrace();
}
}
}
自认为注释还是比较清楚的!!