java怎样用StringBuffer的二进制(图片转换的)生成ImageIcon对象?

yanjingrong 2013-07-30 04:22:09
java怎样用StringBuffer的二进制(图片转换的)生成ImageIcon对象?

我把图片转成了二进制代码,存在了StringBuffer中,我想把StringBuffer的内容直接生成ImageIcon,然后在swing的jpanel中显示,不通过写文件到磁盘的步骤
...全文
827 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
可乐罐 2013-08-02
  • 打赏
  • 举报
回复
为什么要用StringBuffer来存byte[]??????这个很奇怪啊
sunyiz 2013-08-02
  • 打赏
  • 举报
回复
你都 new 出一个 file 对象了, 为什么不直接通过 ImageIO 去 read 一个 BufferedImage 对象出来呢?
yanjingrong 2013-08-01
  • 打赏
  • 举报
回复
引用 9 楼 AA5279AA 的回复:

public Object getObject(byte[] b) {
		Object o=null;
		try {
			ByteArrayInputStream bais = new ByteArrayInputStream(b);
			ObjectInputStream ois;
			ois = new ObjectInputStream(bais);
			o =ois.readObject();
			// ArrayList str = (ArrayList) ois.readObject(); //读取类
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return o;
	}
能帮你把字节转化成一个File对象 剩下的就容易了吧。 但不知道为啥,我总感觉这种得到的图片和原图不一样,
帮我看下我的代码为什么还是有点问题呢? package picToBin; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; import javax.imageio.ImageIO; import javax.swing.JPanel; class ImagePanel extends JPanel { private BufferedImage image; public ImagePanel() { try { byte[] b=fileT0Byte(); File file=(File) getObject(b); image = ImageIO.read(file); //image = ImageIO.read(new File("c:\\rose.jpg")); } catch (IOException ex) { // handle exception... } } @Override public void paintComponent(Graphics g) { g.drawImage(image, 0, 0, null); } public static byte[] fileT0Byte() throws IOException { String path = "c://2013-08.jpg"; File file = new File(path); FileInputStream fis = new FileInputStream(file); byte[] b = new byte[fis.available()]; fis.read(b);//写入到byte数组 return b; } public static Object getObject(byte[] b) { Object o=null; try { ByteArrayInputStream bais = new ByteArrayInputStream(b); ObjectInputStream ois; ois = new ObjectInputStream(bais); o =ois.readObject(); // ArrayList str = (ArrayList) ois.readObject(); //读取类 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return o; } }
失落夏天 2013-07-31
  • 打赏
  • 举报
回复

public Object getObject(byte[] b) {
		Object o=null;
		try {
			ByteArrayInputStream bais = new ByteArrayInputStream(b);
			ObjectInputStream ois;
			ois = new ObjectInputStream(bais);
			o =ois.readObject();
			// ArrayList str = (ArrayList) ois.readObject(); //读取类
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return o;
	}
能帮你把字节转化成一个File对象 剩下的就容易了吧。 但不知道为啥,我总感觉这种得到的图片和原图不一样,
yanjingrong 2013-07-31
  • 打赏
  • 举报
回复
引用 4 楼 longtian1213 的回复:
试试取得二进制字节数组,然后使用ImageIcon(byte[] imageData) 生成一个ImageIcon对象!
能给几行关键代码么?我在网上找了,生成了ImageIcon,但是图片不显示
yanjingrong 2013-07-31
  • 打赏
  • 举报
回复
引用 5 楼 AA5279AA 的回复:
StringBuffer可以存二进制数组么? 你说这个二进制数组是什么型的? char[]? byte[]?
我的代码: public static StringBuilder getbuffer() throws IOException{ // StringBuilder bf=new StringBuilder(); String path = "c://2013-08.jpg"; File file = new File(path); FileInputStream fis = new FileInputStream(file); byte[] b = new byte[fis.available()]; StringBuilder str = new StringBuilder();//不建议用String fis.read(b); for(byte bs:b) { str.append(Integer.toBinaryString(bs));//转换为二进制 } String str2=str.toString(); System.out.println(str2.substring(0, 60)); return str; }
跳蚤图 2013-07-31
  • 打赏
  • 举报
回复
失落夏天 2013-07-31
  • 打赏
  • 举报
回复
StringBuffer可以存二进制数组么? 你说这个二进制数组是什么型的? char[]? byte[]?
S117 2013-07-31
  • 打赏
  • 举报
回复
试试取得二进制字节数组,然后使用ImageIcon(byte[] imageData) 生成一个ImageIcon对象!
yanjingrong 2013-07-31
  • 打赏
  • 举报
回复
我要把内存中 二进制数转为图片 在swing的jpanel中显示
raistlic 2013-07-31
  • 打赏
  • 举报
回复
“我把图片转成了二进制代码” 有没有这一步具体的代码 如果 StringBuffer 里的内容格式无误,可以用 toString().getBytes() 得到 byte[]
yanjingrong 2013-07-30
  • 打赏
  • 举报
回复
求助了.............
内容概要:本文详细介绍了基于Matlab实现的“梯级水光互补系统最大化可消纳电量期望短期优化调度模型”,属于电力系统领域高水平科研成果的复现(EI级别)。该模型聚焦于梯级水电站与光伏发电系统的协同优化调度,通过构建短期优化调度框架,旨在提升可再生能源的电量消纳能力并最大化系统综合效益。研究采用先进的数学优化方法对水光资源进行联合调度,充分考虑了光伏出力的不确定性、水资源约束、系统运行边界条件及电力平衡要求,实现了在多重约束下的电量期望最大化目标。模型不仅具备严谨的理论基础,还具有良好的工程应用前景,适用于新能源高比例渗透背景下电力系统的优化调度研究与实践。; 适合人群:具备电力系统分析、可再生能源利用或优化建模背景的研究生、科研人员及工程技术人员,特别适合致力于复现高水平学术论文(EI/顶刊)研究成果的学习者与开发者。; 使用场景及目标:① 学习并掌握梯级水电与光伏系统协同调度的建模思路与关键技术;② 熟悉基于Matlab的混合整数线性规划(MILP)或其他非线性优化方法在能源系统中的实际应用;③ 提升在新能源消纳、短期调度优化等方向的科研建模能力与代码实现水平,支持二次开发与创新研究。; 阅读建议:建议结合Matlab代码与优化理论同步研读,重点理解目标函数的设计逻辑、各类物理与运行约束的数学表达以及求解器的调用流程,推荐使用YALMIP等建模工具辅助实现,以提高模型构建效率与可读性,便于深入理解与后续拓展。

62,621

社区成员

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

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