這個程式沒有任何的使用價值,起碼我這麼認為,因為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
{
//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
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();
}
}
}
自認為注釋還是比較清楚的!!