利用Base64实现图片和XML格式的相互转换

标签: 利用 base64 图片 | 发表时间:2012-09-19 20:14 | 作者:
出处:http://www.iteye.com

 

 

 

package com.neusoft;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Test {
	public static void main(String[] args) {
		Test t = new Test();
		t.inputToXML();
		t.outToImage();
	}

	// 图片转换成XML
	public void inputToXML() {
		BASE64Encoder encoder = new BASE64Encoder();
		try {
			File f = new File("D:\\xml\\1.jpg");
			// System.out.println("5555");
			if (f.exists()) {

				FileInputStream fis = new FileInputStream(f);
				byte[] buffer = new byte[(int) f.length()];
				fis.read(buffer);
				String s_imageData = encoder.encode(buffer);
				Document doc = DocumentHelper.createDocument();
				Element root = doc.addElement("ImageList");
				Element imageID = root.addElement("imageID");
				Element imageInfo = root.addElement("imageInfo");
				Element imageSize = root.addElement("imageSize");
				Element imageData = root.addElement("imageData");
				imageID.addText("01");
				imageInfo.addText("图片1");
				imageSize.addText(String.valueOf(f.length()));
				imageData.addText(s_imageData);
				XMLWriter writer = new XMLWriter(new FileOutputStream("D:\\xml\\1.xml"));
				writer.write(doc);
				System.out.println("22");
				writer.flush();
				writer.close();
			} else {
				System.out.println("找不到要转换的图片文件!");
			}

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	// XML转成图片
	public void outToImage() {
		File f = new File("D:\\xml\\1.xml");
		SAXReader reader = new SAXReader();
		try {
			Document doc = reader.read(f);
			byte[] aa = doc.asXML().getBytes() ;
			System.out.println(new String(aa,"UTF-8"));
			
			Element root = doc.getRootElement();
			Element image = (Element) root.selectSingleNode("imageData");
			String s_data = image.getText();
			BASE64Decoder decoder = new BASE64Decoder();
			byte[] data = decoder.decodeBuffer(s_data);
			
			FileOutputStream fos = new FileOutputStream("D:\\xml\\71198.jpg");
			fos.write(data);
			fos.flush();
			fos.close();
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}

 

 

 

 

 

 

 

 

 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [利用 base64 图片] 推荐:

利用Base64实现图片和XML格式的相互转换

- - ITeye博客
imageInfo.addText("图片1");. System.out.println("找不到要转换的图片文件. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

利用人工智能检测色情图片 - CSDN博客

- -
色情内容在中国一直处于严格的监管,即使这样,互联网上还是很容易就能访问到色情内容. 还记得曾经的“绿坝-花季护航”软件么. 由于其识别效果差、软件不稳定,最后不了了之,浪费了大量的人力和金钱. 随着计算机视觉和深度学习的发展,算法已经成熟,利用人工智能,我们能够更加精确的识别色情内容. 现在有很多云服务商提供鉴黄服务,通过集成鉴黄API到产品中,就可以给产品增加色情过滤功能.

【9to5 Google】Google利用“知识图谱”优化图片搜索结果

- - 译言-电脑/网络/数码科技
自去年发布“图片搜索”功能以来,Google几乎每周都会更新算法. 如今,Google计划利用“知识图谱(Knowledge Graph)”继续优化这个大受欢迎的功能. 借助“图片搜索”功能,用户导入一张图片,Google即可反馈与此图相关的其他图片和搜索结果. 用户可以拖曳上传图片,或者输入图片网址.

[利用 Python 快速制作游戏字库](一)基础篇+分割字库图片

- cong - python.cn(jobs, news)
其实早就打算写相关文章的,但因为抽不出时间还是一直没动笔. 最近又想起来,然后翻开近半年前的草稿一看,居然一字未动. 现在回想起来,当初定的目标似乎太遥远了,所以我打算把原来准备一次写完的内容拆成一小段一小段来写. 这样有空就写一小段,似乎更实际一点. 在开始读这篇心得前,本人假定你对Python语言已有足够的了解,并已能写一些小程序;清楚游戏字库特别是图片类字库的原理、构造、作用,已做过或有充分准备可以制作一种字库.

Nodejs中利用phantom把html转为pdf或图片格式 - younglao的博客 - CSDN博客

- -
最近在项目中遇到需要把html页面转换为pdf的需求,并且转换成的pdf文件要保留原有html的样式和图片. 也就是说,html页面的图片、表格、样式等都需要完整的保存下来. 最初找到三种方法来实现这个需求,这三种方法都只是粗浅的看了使用方法,从而找出适合这个需求的方案:. wkhtmltopdf 工具.

分享图片

- 糖果 - 变态辣椒的时政漫画

javascript图片切换

- Haipeng - 博客园-首页原创精华区
闲来无事,练习js,参照网上的一些源码写了一个图片切换程序,刚来博客园,不懂怎么发布js程序,懂的朋友可以留言告之. 1.图片切换效果有以下几种:随机切换   4格纵向百叶窗  16格横向百叶窗  由里至外逐渐放大   中间向左右两边逐渐放大   中间向上下两边逐渐放大   由上至下落幕   由左至右   由左上至右下   由右下至左上              8格纵向百叶窗    8格纵向百叶窗2   8格万花筒  24格万花筒  4格滑行左上至右下  4格滑行左上至右下  4格滑行落幕   4格滑行延伸.

图片会说话

- aeaanli - YesKafei Daily
任天堂Wii 手柄 Classic Controller Pro. wii| T-Freestyle NW 单板滑雪模拟器. Wii 不再孤独,微软发布身体感应游戏机 Xbox 360 Kinect. Wii 这样的外设你想拥有嘛. 织梦DedeCms魅友吧手机图片模板分享 | 织梦(Dedecms)管理员之家 (@dedeadmin).

Google 图片爬虫

- - 吴良超的学习笔记
这里的 Google 图片爬虫指的是爬取在 Google 上通过关键词搜索得到的图片,由于最近需要一些特定领域的图片,而且现有的数据库满足不了要求,因此就想通过 Google 搜索筛选出这些特定领域的图片,然后下载下来后再进行人工筛选. 这里采用了两种方法,区别在于是否需要解析网页端的 JS 代码.

图片在于运动

- kezonet - 设计|生活|发现新鲜
最近超流行动态摄影的说,今天小编就帮大家整合了一些. 西安现在的天气是艳阳直晒,很适合泡一杯绿茶,躲在一个安静的角落,带上耳机,听着属于你的歌曲,然后慢慢品味这些能带给你别样感觉的动态图片. 你所在的城市,现在是怎么样的状态呢. 「设计,生活,发现新鲜」在新浪微博,更即时地获读更新,更直接地交流沟通.