Xml文件中的图片怎么提取出来?

没有更多推荐了,
不良信息举报
举报内容:
图像保存到XML文件和从XML中取出图像显示
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!大神都是这样做,一键提取Word中图片大神都是这样做,一键提取Word中图片天文科学百家号我们常常有这样的需求,当Word中有大量图片时,想把图片批量一键提取出来时,仅仅依靠复制粘贴无疑极大增加了工作量,而且还有可能出现遗漏。实际有这样的技巧可以一键提取出Word中图片,只是很多人没有深入了解过。现在介绍给大家。从Office 2007开始,Office采用Open XML文件格式来保存Word、PowerPoint、Excel的文档,这样格式的文档是由特定的XML和图片、视频等元素所构成。它们可以想成按一个压缩包的形式组织在一起,可以从中直接将图片提取出来。介绍两种方法,第一种是一键提取同一个Word文档中的大量图片,第二种是一键提取多个Word文档中的图片。不说废话,直接上货。一键提取同一文档中的图片当这个Word文档中有大量图片,需要提取时,首先想好图片保存在哪里,不要养成什么文档都保存在桌面的习惯。有了“目的地”之后,点击“文件—另存为—选取位置—格式选取‘网页’格式”,如下图1.另存为“网页”2.点击保存之后,再到自己指定的保存位置,文件夹里就是你需要的图片了。注意:如果原图片格式为jpg、png等,提取出来的格式不变,仍为原格式。一键提取多文档图片很多人可能有疑问,都可以批量处理多文档了,为啥还要学上面处理单个文档的,两个原因,一是因为多文档借助解压软件完成的,略微复杂,不是仅靠Word本身就能完成,对某些人可能有限制;二是因为技多不压身嘛!我这里建了两个文件夹,你可以按自己的需求。首先打开360压缩,“多选文档—选择‘解压到’—选择路径—立即解压”,即可完成。图文详情如下:1.找到文档2.解压到指定路径3.解压完成4.关注我之前已经推送了PPT图片和模板的搜索技巧,非常实用的。关注我之后私聊发送“图片”、“模板”即可获取免费高效技能教程。你的关注是我努力的追求。千万别把我弄丢了!本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。天文科学百家号最近更新:简介:喜欢学习科技发明,上网有趣的东西作者最新文章相关文章网站已改版,请使用新地址访问:
ReadXml 可以将著名的ImageNet数据集中的图片,根据其XML标注文件的 ,剪裁出图像 目标 Windows Develop 238万源代码下载- www.pudn.com
&文件名称: ReadXml
& & & & &&]
&&所属分类:
&&开发工具: Python
&&文件大小: 3 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:可以将著名的ImageNet数据集中的图片,根据其XML标注文件的标注,剪裁出图像中的目标,按标注类别进行分类。可以修改验证集图片的分类方式等。-Images can be famous ImageNet data set, according to its XML tagging file annotation, cut out the image of the target, according to the categories are classified.Can modify the validation set image classification, etc.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&cutpic.py&&read_xml_folders.py&&read_xml.py&&changename.py
&输入关键字,在本站238万海量源码库中尽情搜索:下次自动登录
现在的位置:
& 综合 & 正文
照片信息以Base64存到了XML文件中,我还想把还原出来,存为图片文件。进来看看。
version="1.0"?&
xmlns:dt="urn:schemas-microsoft-com:datatypes"
dt:dt="bin.base64"&/9j/4AAQSkZJRgABAgIAJwAnAAD/4QALUElDAAIgIwEA/8AACwgAaABOAQERAP/bAEMAEAsM
DgwKEA4NDhIREBMYKBoYFhYYMSMlHSg6Mz08OTM4N0BIXE5ARFdFNzhQbVFXX2JnaGc+TXF5
cGR4XGVnY//EAEkAAAMBAQEBAAAAAAAAAAAAAAIDBAUBAAYQAAICAQMDAgQFAwUAAAAAAAEC
AAMRBCExEkFRE2EFInGBFDKR0fAzobFCUmJy8f/aAAgBAQAAPwDa1OoV7D1K69gcbSR2auzA
rZvcD6ye1LLLc9D57DH+IVdl6YQIw24APtGmy/qIHq7eAduZPY1l7dK9bEdsEkSIgq5U5B8E
YxGoCrZDb+03Ph+s6wK7D8w2B8zRDDEyfSDVEHO89aQtyoVYk8Y+851H8b6eGzntx9oKufxv
R8xb+3Ah5FtL2gkMFKtFaVU0yetnBY4BPjeT/FaPT1BsAwH/AMyFWPePS5ldWBAx4n0WmtF1
CuDzIRqK2KhmKkf7/tEO1z6lgjhhyMGVCu0Hq+bPnME1Wl+sEhuM5gfhrB1DqYB+feLvq1HQ
ALCQN8GRai+9x0WtnG+JLk5A2hKe+d5t/B7Sa3QnIByIT1qWCsO+D/bmJQJTeO2eJoeoAMYP
8zC+RsAHeEwwOIiy2pPzsombq3qu2rG/mRjTux6QuD9Iv0iGxwRNj4PQymxs7HaV6lQl5+XO
TnPPiIuQLYGI8YlOU6cEHj795301JDKcyisda4O495Fq9NUH6mWIS2hWCrVv7CUIK7dwo28i
Y+uqNerYDvvN34fUa9OoPJ3P1h6pc3Icfz3i3rDOue2IZqBGDOlOkH3jauIvVViwCTV6ZVfr
wM+ZQqBRsAJDrNKbtRWy9uf1mnWMLiHdWMqT2MAKhbI7QiNuIttz/PeNTOIuz8wnMT0Hp+bM
conXs6hxI/XKORG/iMLJLtZ6ZJ6TmMp+IK6/kbPjEYt/rcoVxGzwhDidyRxBkd2zxNt3QsT6
qWHciU1mtQCCI5bE7MPsYxbAw2OYY3h9pwnA8z0m1SZTI5Ez2+fniINQDZ6Y1OhdiHPtKa60
bhSI+tBXxKEOYYnTxOYOMiQa220kJUuR/qOZCS1T/ONjHI6HuDH1tVtxHhkxtie+ZvyqcecS
GrVPTr2SzIRj3msrZxOniZ7X2MoJcAeMfSCFBGQEz/0i9TQbDyBv+8JNHWBgg5Pv9I6nSIu+
x27yj0ayeN48DAAkFwX1mJVSPcZ8TlWo9IKDnBPeULq6js2Vx5mfUQigMWJ8/pDFybZL8e37
Txb1HBUkD/2VBQD+YD7w1AA/qL+v0hq1YOeoTzaisd84kNltVlhHV0n/AJbeJzDYGBkD9pHq
1LWZ48/qZ//ZAA==&/photo&
Base64编码如上,大家帮我还原一下。谢谢!
沙发,在看...
以前做过数据用BASE64转换,等我试试...
Indy就有的
ly_liuyang
我也知道有,但不会用啊。。
TForm1.Button1Click(Sender:
vXMLDocument:
vDOMNodeList:
vXMLDocument
TXMLDocument.Create('c:\temp\temp.xml');
vDOMNodeList
vXMLDocument.DOMDocument.getElementsByTagName('root');
Assigned(vDOMNodeList)
(vDOMNodeList.length
vDOMNodeList.length
vDOMNodeList.item[I];
vDOMNode.hasChildNodes
vDOMNode.firstC
SameText(vDOMNode.nodeName,
vDOMNode.hasChildNodes
vDOMNode.firstC
SameText(vDOMNode.nodeName,
DecodeString(vDOMNode.nodeValue);
TMemoryStream.Create
Write(S[1],
Length(S));
SaveToFile('c:\temp\temp.jpg');
vXMLDocument.F
Base64Decode(const
TIdBase64D
TIdBase64Decoder.Create(nil);
Coder.AddCRLF
Coder.UseEvent
Coder.CodeString(s);
Copy(Coder.CompletedInput,
FreeAndNil(Coder);
谢谢 zswang(伴水清清)(专家门诊清洁工)
。成功了!
以下是VB代码。不知道,能否也转到delphi中?
Command2_Click()
MSXML.DOMDocument
xmlDoc.Load
"\@CIA.trm"
ADODB.Stream
ADODB.Stream
adModeReadWrite
adTypeBinary
xmlDoc.selectSingleNode("root").selectSingleNode("photo").nodeTypedValue
.SaveToFile
"\test1.jpg"
//早说你有这样的代码,我也不用这样费劲了
adModeUnknown
adModeRead
adModeWrite
adModeReadWrite
adModeShareDenyRead
adModeShareDenyWrite
adModeShareExclusive
$0000000C;
adModeShareDenyNone
adTypeBinary
adTypeText
adStateClosed
adStateOpen
adStateConnecting
adStateExecuting
adStateFetching
TForm1.Button1Click(Sender:
vDOMDocument:
ExtractFilePath(ParamStr(0));
vDOMDocument
CreateOleObject('MSXML.DOMDocument');
vDOMDocument.Load(vAppPath
'@CIA.trm');
CreateOleObject('ADODB.Stream');
vStream.Mode
adModeReadW
vStream.Type
vStream.Write(vDOMDocument.selectSingleNode('root').selectSingleNode('photo').nodeTypedValue);
FileExists(vAppPath
'test1.jpg')
DeleteFile(vAppPath
'test1.jpg');
vStream.SaveToFile(vAppPath
'test1.jpg');
vDOMDocument
呵呵,谢谢zswang。
【上篇】【下篇】一.保存图片到XML文件 /// &summary& /// 保存图片到XML文件 /// &/summary& private void UploadImageToXml() { &&& ///得到用户要上传的文件名 && string strFilePathName = loFile.PostedFile.FileN && string strFileName = Path.GetFileName(strFilePathName); && int FileLength = loFile.PostedFile.ContentL&&& if(FileLength&=0)&&&&&&& return;&&& try&&& {&&& &&&&&&& ///图象文件临时储存Byte数组&&&&&&& Byte[] FileByteArray = new Byte[FileLength]; &&&&&&& ///建立数据流对像&&&&&&& Stream StreamObject = loFile.PostedFile.InputS &&&&&&& ///读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度&&&&&&& StreamObject.Read(FileByteArray,0,FileLength); &&&&&&& ///要打开的文件&&&&&&& string fileName = Server.MapPath(".\\WriteXml.xml");&& &&& &&&&&&& XmlDocument xmlDoc = new XmlDocument();&&&&&&& xmlDoc.Load(fileName);&&&&&&& ///查找&dbGuest&&&&&&&& XmlNode root=xmlDoc.SelectSingleNode("dbImage");&&&&&&& XmlNodeList xnl=xmlDoc.SelectSingleNode("dbImage").ChildN&&&&&&& int nIndex = xnl.C&&&&&& ///以下添加新结点&&&&&&& XmlElement xe1=xmlDoc.CreateElement("Image");//创建一个&User&节点&&&&&&& XmlElement xesub1=xmlDoc.CreateElement("ImageID");&&&&&&& &&&&&&& ///设置文本节点&&&&&&& xesub1.InnerText=nIndex.ToString();&&&&&&& ///添加到&User&节点中&&&&&&& xe1.AppendChild(xesub1);&&&&&&& XmlElement xesub2=xmlDoc.CreateElement("ImageContentType");&&&&&&& xesub2.InnerText=loFile.PostedFile.ContentT&&&&&&& xe1.AppendChild(xesub2);&&&&&&& XmlElement xesub3=xmlDoc.CreateElement("ImageSize");&&&&&&& xesub3.InnerText=FileLength.ToString();&&&&&&& xe1.AppendChild(xesub3);&&&&&&& XmlElement xesub4=xmlDoc.CreateElement("ImageDescription");&&&&&&& xesub4.InnerText=tbDescription.T&&&&&&& xe1.AppendChild(xesub4);&&&&&&& XmlElement xesub5=xmlDoc.CreateElement("ImageData");&&&&&&& xesub5.InnerText= Convert.ToBase64String(FileByteArray);&&&&&&& xe1.AppendChild(xesub5);&&&&&&& &&&&&&& ///添加到&dbGuest&节点中&&&&&&& root.AppendChild(xe1);&&&&&&& xmlDoc.Save(fileName);&&& &&&&&&& Response.Redirect("ShowAllImg.aspx");&&& }&&& catch(Exception ex)&&& {&&&&&&& throw&& }}二.从XML中读取图片数据 /// &summary& /// 从XML中读取图片 /// &/summary& /// &param name="ImageID"&图片ID&/param& private void ReadImageFromXml(string ImageID) {&&&
&&& ///ID为图片ID && int ImgID = Convert.ToInt32(ImageID);
&&& ///要打开的文件&&& string fileName = Server.MapPath(".\\WriteXml.xml");& &&& &&& XmlDocument xmlDoc = new XmlDocument();&&& xmlDoc.Load(fileName);&&& XmlNodeList node =& xmlDoc.SelectSingleNode("//Image[ImageID='"+ImgID.ToString()+"']").ChildN&&& if(node!=null)&&& {&&&&&&& string strType = node.Item(1).InnerT&&&&&&& string strData =node.Item(4).InnerT&&&&&&& int nSize = int.Parse(node.Item(2).InnerText);&&&&&&& &&&&&&& ///设定输出文件类型&&&&&&& Response.ContentType = strT&&&&&&& ///输出图象文件二进制数制&&&&&&& Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize); &&&&&&& Response.End();&&&&&&& //也可以保存为图像&&&&&&& //FileStream fs = new FileStream(@"C:\aa.BMP", FileMode.OpenOrCreate, FileAccess.Write);&&&&&&& //fs.Write((Convert.FromBase64String(strData), 0,nSize);&&&&&&& //fs.Close();&&& }}
阅读(...) 评论()

我要回帖

 

随机推荐