首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java图片运用

2012-10-23 
java图片应用import java.awt.Colorimport java.awt.Fontimport java.awt.Graphics2Dimport java.awt.i

java图片应用
import java.awt.Color;  
import java.awt.Font;  
import java.awt.Graphics2D;  
import java.awt.image.BufferedImage;  
import java.io.File;  
import java.io.IOException;  
import java.net.URL;  
 
private Font font = null;// 添加字体的属性设置  
 
private Graphics2D g = null;  
 
private int fontsize = 0;  
 
private int x = 0;  
 
private int y = 0;  
 
 
/** 
* 导入本地图片到缓冲区 
*/ 
public BufferedImage loadImageLocal(String imgName)  
{  
    try 
    {  
        return ImageIO.read(new File(imgName));  
    } catch (IOException e)  
    {  
        System.out.println(e.getMessage());  
    }  
    return null;  
}  
 
 
/** 
* 导入网络图片到缓冲区 
*/ 
public BufferedImage loadImageUrl(String imgName)  
{  
    try 
    {  
        URL url = new URL(imgName);  
        return ImageIO.read(url);  
    } catch (IOException e)  
    {  
        System.out.println(e.getMessage());  
    }  
    return null;  
}  
 
 
 
/** 
* 生成新图片到本地 
*/ 
public void writeImageLocal(String newImage, BufferedImage img)  
{  
    if (newImage != null && img != null)  
    {  
        try 
        {  
            File outputfile = new File(newImage);  
            ImageIO.write(img, "gif", outputfile);  
        } catch (IOException e)  
        {  
            System.out.println(e.getMessage());  
        }  
    }  
}  
 
 
/** 
* 设定文字的字体等 
*/ 
public void setFont(String fontStyle, int fontSize)  
{  
    this.fontsize = fontSize;  
    this.font = new Font(fontStyle, Font.PLAIN, fontSize);  
}  
 
 
 
/** 
* 修改图片,返回修改后的图片缓冲区(只输出一行文本) 
*/ 
public BufferedImage modifyImage(BufferedImage img, Object content, int x,int y)  
{  
 
    try 
    {  
        int w = img.getWidth();  
        int h = img.getHeight();  
        g = img.createGraphics();  
        g.setBackground(Color.WHITE);  
        g.setColor(Color.RED);  
        if (this.font != null)  
        g.setFont(this.font);  
        // 验证输出位置的纵坐标和横坐标  
        if (x >= h || y >= w)  
        {  
            this.x = h - this.fontsize + 2;  
            this.y = w;  
        } else 
        {  
            this.x = x;  
            this.y = y;  
        }  
        if (content != null)  
        {  
            g.drawString(content.toString(), this.x, this.y);  
        }  
        g.dispose();  
    } catch (Exception e)  
    {  
        System.out.println(e.getMessage());  
    }  
 
    return img;  
}  
 
/** 
* 修改图片,返回修改后的图片缓冲区(输出多个文本段) xory:true表示将内容在一行中输出;false表示将内容多行输出 
*/ 
public BufferedImage modifyImage(BufferedImage img, Object[] contentArr,int x, int y, boolean xory)  
{  
    try 
    {  
        int w = img.getWidth();  
        int h = img.getHeight();  
        g = img.createGraphics();  
        g.setBackground(Color.WHITE);  
        g.setColor(Color.RED);  
        if (this.font != null)  
        g.setFont(this.font);  
        // 验证输出位置的纵坐标和横坐标  
        if (x >= h || y >= w)  
        {  
            this.x = h - this.fontsize + 2;  
            this.y = w;  
        } else 
        {  
            this.x = x;  
            this.y = y;  
        }  
        if (contentArr != null)  
        {  
            int arrlen = contentArr.length;  
            if (xory)  
            {  
                for (int i = 0; i < arrlen; i++)  
                {  
                    g.drawString(contentArr[i].toString(), this.x, this.y);  
                    this.x += contentArr[i].toString().length()* this.fontsize / 2 + 5;//重新计算文本输出位置  
                }  
            } else 
            {  
                for (int i = 0; i < arrlen; i++)  
                {  
                    g.drawString(contentArr[i].toString(), this.x, this.y);  
                    this.y += this.fontsize + 2;//重新计算文本输出位置  
                }  
            }  
        }  
        g.dispose();  
    } catch (Exception e)  
    {  
        System.out.println(e.getMessage());  
    }  
 
    return img;  
}

热点排行