怎样用字节数组在本地文件系统生成图像

LlitsDnats 2010-02-23 05:54:26
怎样用字节数组在本地文件系统生成图像
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
focusforce 2010-02-23
  • 打赏
  • 举报
回复
偶用的BASE64Decoder,编码成String,是可以的。
InputStream is;
try
{
is = new FileInputStream(file);
int len = is.available();
byte[] b = new byte[len];
is.read(b, 0, len);

BASE64Encoder encoder = new BASE64Encoder();
String s = encoder.encode(b);
}
catch (Exception ex)
{
}


BASE64Decoder decoder = new BASE64Decoder();
byte[] b2;
try
{
b2 = decoder.decodeBuffer(new String(c.getLogo()));
。。。
}
catch (IOException e)
{
}

检查下是不是jdbc操作写的不对。
LlitsDnats 2010-02-23
  • 打赏
  • 举报
回复
我现在的情况是把图片转成字节数组存放到数据库,然后现在是把数组读出来想把图片还原保存在本地,我现在图片是生成了,不过跟原来的不一样
focusforce 2010-02-23
  • 打赏
  • 举报
回复
貌似需要先通过文件头读取文件格式,再存成图片文件就比较简单了,把内容往文件写。
knightzhuwei 2010-02-23
  • 打赏
  • 举报
回复
手边有个例子 你可以看看 不过不是字节数组 不过可以转换为字节数组
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class Demo {

public static void main(String[] args) {
int w=400;
BufferedImage im=new BufferedImage(w, w, BufferedImage.TYPE_INT_ARGB);
for(int i=0;i<w;i++){
for(int j=0;j<w;j++){
int r=(int)(i*i+2*i*j+j*j)%256;
int g=(int)(i*i+1.8*i*j+j*j)%256;
int b=(int)(i*i+2.2*i*j+j*j)%256;
int rgb=(r<<16)+(g<<8)+(b)+(0xff000000);
//System.out.println(Integer.toHexString(rgb));
im.setRGB(i, j, rgb);
}
}
File f=new File("D:/test.png");
try {
ImageIO.write(im, "png",f);
im.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
小贝壳666 2010-02-23
  • 打赏
  • 举报
回复
准备工作
先以流的方式读图像,读完后放到字节数组中,多读一些以备可以生成不同的图像


生成图像
从字节数组中输出流,以图像形式保存到本地。

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧