图片的内容直接内嵌网页里,如何显示出来?高难! ( 积分: 300 )

  • 主题发起人 主题发起人 东风在说
  • 开始时间 开始时间

东风在说

Unregistered / Unconfirmed
GUEST, unregistred user!
我在另一帖子
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3151235
里问了一个问题,这里接着问!
就是,我直接把图片的内容编码成文本,放在网页上,但是如何显示出来呢?
image好像只能通过src来设置图像,src能设置成网页上的一个变量或者一个javascript
函数吗?
 
我在另一帖子
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3151235
里问了一个问题,这里接着问!
就是,我直接把图片的内容编码成文本,放在网页上,但是如何显示出来呢?
image好像只能通过src来设置图像,src能设置成网页上的一个变量或者一个javascript
函数吗?
 
帮你顶吧!
应该说src不能设置到本页面里的变量或者函数吧?!我帮你查查资料!
 
重赏之下必有勇夫,看了一个多小时资料,还是没有太大进展,现在知道img还有几个可用属性,如datasrc和datafld,它是指定数据源和数据段的,但是不知道具体怎么用。参考了mht文件,它也是用base64编码后保存的,效仿了一下,还没有成功。继续努力ing...

付mht文件例子:
From: <由 Microsoft Internet Explorer 5 保存>
Subject:
Date: Sun, 31 Jul 2005 13:21:20 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_0000_01C595D2.BD783650"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C595D2.BD783650
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: file://C:/Program Files/HTML Help Workshop/test.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.2900.2668" name=3DGENERATOR></HEAD>
<BODY><IMG=20
src=3D"file:///C:/Program%20Files/HTML%20Help%20Workshop/cool061.jpg"></B=
ODY></HTML>

------=_NextPart_000_0000_01C595D2.BD783650
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: file:///C:/Program%20Files/HTML%20Help%20Workshop/cool061.jpg

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
。。。。。。。。。。省略一堆。。。。。20多k
wDuKUHiiipW4+g7PA+lLnK0UVo+pHUax+QfU19HfAV2PgS6BPAv3x/3wlFFYy3Kex6n/AAmkooqS
QooooAKKKKCgpcmiigD/2Q==

------=_NextPart_000_0000_01C595D2.BD783650--
 
哈哈!我也正在研究mht!
其中的图片编码正好是base64编码的,现在是汉字编码有些问题!
正在研究!
的确是“重赏之下,必有勇夫”
 
我找到解决办法了。跑来跑去又回到xml这里去了。也就是通过xml,使用<img DataSrc="#aaa" DataFld="">方式调用xml中的数据,xml中的数据还是通过 base64编码的。至于如何把数据丢到网页里面,让网页自己访问自己的数据,还没有成功。努力ing...
 
to crazycock:
太感谢了!
极度期盼中。。。
 
crazycock够厉害的!佩服!
我也试一试你的方法...
 
to crazycock:
用clientdataset打开带有图片的表,然后通过xmldata属性获得xml,这个xml可以放在网页上。
然后你试试!
我去打球去了!兄弟继续努力!
 
我觉得可能行不通。mht之所以可以把图片编码到文件内部,它在IE打开mht的时候,其实有个过程,就是把文件中的图片解码到临时文件夹中,这个过程,IE可以帮mht来做,但是不知道它使用什么关键字来标识的,想借它这招,暂时没有成功。

另外,把我们的网页和图片做成单一文件mht后,你打开这个文件,在图片上另存到磁盘中,你会发现,图片变成bmp格式了,无论你原来的图片是什么格式的。这个更加说明,它是经过了IE加工后显示的,并非简单的decode64解码,否则我编码前是jpg格式,编码后的文本和我自己编码的文本一样的,但是mht解码出来就变成bmp了,说明并非简单的decode过程,肯定不可能通过javascript/vbscript这种简单脚本语言实现jpg到bmp转换。说明——仿照mht做法行不通,那是人家IE的小伎俩。

刚才提到,用xml文件方法行得通,后来又有新收货,xml可以直接写到html文件中的(以前没有研究过xml,现在才知道,见笑了),MSDN中有这么一段:
Michael Wallent
Microsoft Corporation
November 1, 1999
Many times in this space, I've talked about how to use data binding with Internet Explorer. I get more questions about this feature than any other from users who are building industrial-strength applications. There are two powerful aspects of data binding that I haven't really talked about before: hierarchy and data updating.
Hierarchical data binding allows easy display of nested content. For example, you want to show a list of customers, but under each customer you want to show all their open orders. With the advent of XML Data, more and more information is deeply nested and requires hierarchy to display the content properly.
Here's an example of the simple "Customer has Orders" style of data display.
Here's the code:
<html>
<head>
<xml id=Simple>
<?xml version="1.0" ?>
<ROOT>
<customer name="Joe Smith">
<order description="Toys"/>
<order description="Groceries"/>
<order description="Electronics"/>
</customer>
<customer name="Harry Johnson">
<order description="Books"/>
<order description="Posters"/>
</customer>
</ROOT>
</xml>
</head>
<body>
<table datasrc=#Simple border=1>
<tr><td><span datafld="name"></span></td></tr>
<tr><td>
<table datasrc=#Simple datafld="order" border=1>
<tr><td><span datafld="description"></span></td></tr>
</table>
</tr></td>
</table>
</body>
</html>
它是直接把数据写到同一个html文件中的,正好符合楼主要求,单一文件传输,但是,因为我们需要解码后才能赋值给DataFld,所以又遇到了麻烦。好在后面又有进展。
MSDN后面给出了html页面中,使用脚本语言对xml操作的例子片断。
function addRow() {
var xmld, fc, nfc;
xmld = portfolio.XMLDocument.documentElement;
fc = xmld.firstChild;
if (!fc)
return;
nfc = fc.cloneNode(true);
xmld.insertBefore(nfc, null);
}
言外之意,我们可以让<img datasrc=#xxxx datafld=xxx>先绑定数据源,然后再对xml节点进行操作,赋给它我们解码后的数据,应该可以达到目的,但是,我又犹豫了,xml的节点的值难道可以二进制的?解码出来的图片的值岂不就是二进制了的么?能赋给xml节点么?不行吧??xml不就是用文本表示一切的么?除了datasrc和datafld还有其他可用的属性么?MSDN都列了,但是我看了几轮毫无收获。
帮助的地址是:
ms-help://MS.MSDNQTR.2004JAN.1033/DHTML/workshop/author/dhtml/reference/objects/img.htm
安装有MSDN的朋友应该可以看到。

困!睡觉~~~~等大家的答案~我玩不转了。
 
大家好!
谢谢crazycock!
我们继续研究吧!
 
哎呀亚~我上午又发了一次帖子,竟然没有发成功??晕死~白白打了半天字~

建议楼主到国外去搜索一下,用关键字 encode image html embed 查查。
介绍一个权威站点,我转了一下,没有找到需要的,不过那里介绍非常全面,希望你可以有所收获。
http://www.w3schools.com/
 
唉!
我是不是应该放弃这个思路?
 
如果在做项目或者软件,先找到合适的替代方法是关键。不要死抠一个点。
 
我查了一些资料,如果把图形数据以XML或者字符串方式直接嵌入页面内,然后用数据绑定
绑定到img元素上,这个方法是不行的!
虽然<img datasrc="# " datafld="">这样写,实际上数据是绑定到img的src属性上,就是
说,那个绑定img的字段的内容应该是字符串--url。因此这个道路行不通了!

看来mht倒是可以!或者在页面放置插件?

我觉得,数据库中的图像在网页上显示时,先存储到磁盘也没什么严重的效率损失,很多
软件都是这样!
 
感谢二位!
 
后退
顶部