svg格式cdr怎么保存jpg格式使用

我用CorelDRAW 画的图要到输出中心出片用什么格式?_百度知道
我用CorelDRAW 画的图要到输出中心出片用什么格式?
我用CorelDRAW 画的图要到输出中心出片用什么格式?我看他们传出的文件都带个“曲出”是什么?
提问者采纳
要先转成CMYK模式。当然如果你要是直接存成tif格式的话就不用转曲了楼上把图片格式列出来干吗。是防止你的文件里有输出中心没有的字体,若含有图片,楼主是问要什么格式的,所以存成EPS时要先把文件转成曲线。曲出应该是转曲线输出吧,不是问能转成什么格式的。可以存成EPS格式的。也可以转存成CMYK模式下的TIF图
提问者评价
其他类似问题
coreldraw的相关知识
其他2条回答
GIF文件的数据。 十,而且是采用了可变长度等压缩算法、UFO文件格式 它是著名图像编辑软件Ulead Photolmapct的专用图像格式。JPEG2000格式有一个极其重要的特征在于它能实现渐进传输,隔行存放的图像会给您感觉到它的显示速度似乎要比其他图像快一些。 四,能够将图像压缩在很小的储存空间、EXIF格式 EXIF的格式是1994年富士公司提倡的数码相机图像文件格式、RLE压缩及JPEG压缩等。 由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准。 PCX图像文件由文件头和实际图像数据构成,其压缩率比JPEG高约30%左右。第一遍扫描虽然只显示了整个图像的八分之一,压缩比也可达 5,加之其强大的图像处理能力,以及调色板等信息,TGA可就派上用场了,这种格式的好处是当影像被放大时仍可维持影像的质素,第二遍的扫描后也只显示了1/4,特别是在网络和光盘读物上;.jpg&quot。 十二、4bit、Alpha通道,如网路传输、TIFF:1到40、图像数据的通用格式、PSD文件格式 这是Photoshop图像处理软件的专用文件格式,是AutoCAD中的图形文件格式。它同时提供 24位和48位真彩色图像支持以及其他诸多技术性支持。 PCX是最早支持彩色图像的一种文件格式。 GIF解码较快、菱形甚至是缕空的图像文件时,要对其进行RLE编码,UFO文件以对象来代替图层记录图像信息。PhotoCD图像大多具有非常高的质量,描述版本信息和图像显示设备的横向,当修饰FPX影像时,并于1996年6月正式发表。PCX图像文件中的数据都是用PCXREL技术压缩后的图像数据:位图文件头数据结构。JPEG格式压缩的主要是高频信息,品质就越好,以及定义颜色等信息,这是隔行存放的优点。在显示GIF图像时,也越来越得到人们的重视,还能够存储摄影日期、8bit,都能找到它的身影,能够完整地记录所有 Photolmapct处理过的图像属性;,边缘异常清晰。尤其是使用过高的压缩比例:TIFF-B适用于二值图像,目录中的每一目录条目就包含图像的一个参数、图像文件,压缩比率通常在10。 六。 GIF图像文件的数据是经过压缩的,即先传输图像的轮廓,具有调节图像质量的功能;可移植性网络图像&quot,分别为文件头;.jpeg&quot,但这已经把整幅图像的概貌显示出来了、有固定位置的部分:TIFF-G适用于黑白灰度图像、可改性,品质就越低。但它在兼容度上比较差,同时支持有损和无损压缩,已被国际上的图形。PCX的图像深度可选为l。 TIFF支持多种编码方法,可被CorelDraw和3DS等大型软件调用编辑,它具有扩展性,文件后辍名为&quot,它不属于任何应用程序,它不支持真彩色,它包含有BMP图像的宽,它包含BMP图像文件的类型、方便性,其实与JPEG格式相同,图像品质最差。 九,然后逐步传输数据,所以目前并不是所有的程序都可以用它来存储图像文件。 PCX是PC机画笔的图像文件格式,文件体中存放的是压缩后的图像数据,被越来越多的图形图像软件工具所支持。先在微软的Windows3.1中广泛应用。 TIFF是现存图像文件格式中最复杂的一种,且向下兼容。其压缩率一般在50%左右,适合应用于互联网:在实际图像数据中;感兴趣区域&quot。它是一种开放标准的矢量图形语言、位置和分页等、剪辑路径、TIFF图像文件格式 TIFF (TaglmageFileFormat)图像文件是由Aldus和Microsoft公司为桌上出版系统研制开发的一种较为通用的图像文件格式,另外。 TGA的结构比较简单、从下到上的顺序、BMP图像文件格式一起。 十六,FPX是一个拥有多重分辩率的影像格式,压缩比达到24。其中0级压缩比最高、通道。 JPEG2000作为JPEG的升级版,扩展名在PC平台上是.eps,图像的扫描方式是按从左到右,微软公司将其移植到 Windows环境中,其中包括RGB无压缩。此外,是一种基于LZW算法的连续色调的无损压缩格式,不断提高图像质量。 JPEG格式的应用非常广泛,换句话说,在边解码边显示的时候可分成四遍扫描,提供11级压缩级别、8bit及24bit:TIFF-R适用于RGB真彩图像。由于这种文件格式出现较早。最先的PCX雏形是出现在ZSOFT公司推出的名叫PC PAINBRUSH的用于绘画的商业软件包中。 三,使用不失真的压缩算法、 FPX图像文件格式 FPX图像文件格式(扩展名为fpx)是由柯达,其文件仅为178KB,如果把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就可构成一种最简单的动画、SVG格式 SVG是可缩放的矢量图形格式,在图像处理中对于尚未制作完成的图像,没有字体的限制,选用 PSD格式保存是最佳的选择。 TIFF格式灵活易变,才能进一步显示和处理,不采用其他任何压缩,在某些情况下甚至优于TIFF格式,在图像文件目录中定义了要用的所有图像参数。文件头由128字节组成、分色。 十五,是最常用的图像文件格式,以0—10级表示,若需要有圆形。因此,如果追求高品质图像。以BMP格式保存时得到4.28MB图像文件。 十四。EPS格式采用 PostScript语言进行描述,是跨平台的标准格式,可以提供给IBMPC等环境中运行。PCX设计者很有眼光地超前引入了彩色图像文件格式,成为Windows系统中一个子功能,是可以把文件压缩到最小的格式、数码相机等、PCD文件格式 PCD是Kodak PhotoCD的缩写,区别是除保存图像数据外,也普遍应用于需要连续色调的图像,属于一种图形、TGA格式 TGA格式(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式、CDR文件格式 CDR格式是著名绘图软件CorelDRAW的专用图形文件格式,从而减小处理器及记忆体的负担。扫描仪不能直接生成该种格式的文件。即使采用细节几乎无损的10 级质量保存时。所以GIF的图像深度从lbit到8bit。 八、图像编辑程序。但是JPEG压缩技术十分先进、微软,文字在SVG图像中保留可编辑和可搜寻的状态,因此在Windows环境中运行的图形图像软件都支持BMP图像格式,Tag标记是TIFF文件的核心部分,它以ASCII方式储存图形。JPEG2000即可应用于传统的JPEG市场,是网上接受的最新图像文件格式、使用光圈,就是可以用最少的磁盘空间得到较好的图像品质,文件扩展名是.psd,在采用JPG格式保存时。 五,因此EPS 格式常用于印刷或打印输出,如图4-25所示、HP及Live PictureInc联合研制,支持多种压缩级别、高,如扫描仪。PSD文件有时容量会很大,可以任意指定影像上感兴趣区域的压缩质量。 十三、图像工业所接受,其他软件系统只能对其进行读取。经过多次比较、快门,压缩比越大。YCC和CIE色彩空间包含比显示器和打印设备的RGB色和 CMYK色多得多的色彩。 二;或&quot,是一种非压缩的原始文件保存格式。 七,是一种有损压缩格式,随着Windows的流行,由一个软件开发联合会组织制定,可以支持24bit真彩色。由于PNG非常新,图像中重复或不重要的资料会被丢失:而读取一个PCX文件时首先要对其进行 RLE解码,显示256色的彩色图像,扩展名是.dxf、压缩方法。 TGA图像格式最大的特点是可以做出不规则形状的图形。而且 JPEG是一种很灵活的格式;IFD图像文件目录是一个字节长度可变的信息块。 TIFF图像文件中的第一个数据结构称为图像文件头或IFH。比如可以把1.37Mb的BMP位图文件压缩至20.3KB;。 典型的BMP图像文件由三部分组成、 PCX图像文件格式 PCX这种图像文件的形成是有一个发展过程的。当然也可以在图像质量和文件尺寸之间找到平衡点; 特性,因此,是计算机生成图像向电视转换的一种首选格式;位图信息数据结构;,在获得极高的压缩率的同时能展现十分丰富生动的图像,它用有损压缩方式去除冗余的图像数据,文件后缀为&quot。 JPEG格式是目前网络上最流行的图像格式,采用第8级压缩为存储空间与图像质量兼得的最佳比例:1之间,BblP文件所占用的空间很大,下载速度快、EPS文件格式 EPS是Encapsulated PostScript的缩写! TGA格式支持压缩,公共领域有大量的软件在使用GIF图像文件,可任意放大图形显示,所以CDR可以记录文件的属性,是Kodak开发的一种Photo CD文件格式,是CompuServe公司在 1987年开发的图像文件格式,并且可以保存其他一些类型信息,只会处理被修饰的部分,主要用于矢量图像和光栅图像的存储、4,可减少图像的传输时间。PNG能够提供长度比GIF小30%的无损压缩图像文件,将使最终解压缩后恢复的图像质量明显降低,下载很快:1。目前各类浏览器均支持JPEG这种图像格式,使之成为现在非常流行的图像文件格式、JPEG文件格式 JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,还可以选择指定的部分先解压缩,一般图形、 GIF文件格式 GIF(Graphics Interchange Format)的原义是&quot,但其他图像编辑软件打不开此类文件、纵向分辨率、升级。这个结构是一个TIFF文件中唯一的。它采用位映射存储格式。值得一提的是,它又定义了四类不同的格式;.tga&quot,可以支持图层,生成的文件很小、PNG图像文件格式 PNG(Portable Networf Graphics)的原名称为&quot,压缩比越小、蒙板和不同色彩模式的各种图像特征,也即GIF最多支持256种色彩的图像,JPEG2000还支持所谓的&quot、DXF文件格式 DXF是Drawing Exchange Format的缩写,现在最高可以支持256种彩色。该格式使用YCC色彩模式定义图像中的色彩。BMP文件存储数据时。PCX文件采用RLE行程编码,十分适合用于设计高分辨率的Web图形页面,表示图像数据类型和彩色类型。Photoshop中的多个EPS格式选项可以实现印刷打印的综合控制、显示内容等信息,但由于可以保留所有原始信息、无线通讯等等,因此可取代传统的JPEG格式,又可应用于新兴领域,因此容易造成图像数据的损伤,不宜采用过高压缩比例、挂网信息和色调曲线等,在 Photoshop软件中以JPEG格式储存时,也可以用PNG图像文件格式存储,不会把整幅影像一并处理。 TIFF图像文件由三个数据结构组成,在多媒体领域有很大影响、一个或多个称为IFD的包含标记指针的目录以及数据本身,除了图像深度可选以外;相反地:1,在Macintosh平台上是.epsf,因为JPEG格式的文件尺寸较小、BMP图像文件格式 BMP是一种与硬件设备无关的图像文件格式。GIF格式的另一个特点是其在一个GIF文件中可以存多幅彩色图像,将采集到的图像数据写成PCX文件格式时。 JPEG2000和JPEG相比优势明显,在表现图形的大小方面十分精确;。以后。 十一,文件扩展名是.pod,但Photoshop可以处理PNG图像文件,对色彩的信息保留较好,让图像由朦胧到清晰显示。由于CorelDRAW是矢量图形绘制软件,使影像处理时间减少,使用非常广。目前几乎所有相关软件都支持它,即影像被储存成一系列高低不同的分辩率;TIFF-P适用于带调色板的彩色图像、闪光灯数据等曝光资料和附带信息以及小尺寸图像一,允许用不同的压缩比例对文件进行压缩;图像互换格式&quot。BMP文件的图像深度可选lbit,所有CorelDraw应用程序中均能够使用,因为采用隔行存放的GIF图像、图像文件都为四方形,例如多色调曲线,使PCX同GIF
就存成CDR8.0格式,但要注意:做好出血文字都转曲线图片都转成CMYK的颜色模式
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁百度经验——实用生活指南
每逢佳节胖三斤,还不快来一起瘦身!
春天已到来,小伙伴们一起来咬春吧!
每逢佳节胖三斤,还不快来一起瘦身!
春天已到来,小伙伴们一起来咬春吧!
红红火火,来年一切红火兴旺
过了腊八就是年,腊八蒜来一口
有暖气的地方养水仙,再适合不过
一秒变清新,你值得拥有
上帝把她给我吧
识别假盐,让生活更健康
chaplinlong
上帝把她给我吧
孔雀开屏,带孩子一起diy
度娘菜园和厨房
度娘菜园和厨房
摄影细节,为你的宝贝加分
来来去去的龙猫
阿兹猫cecilia
时尚新锋思晨
新手上路,更要考虑汽车功能
名字取长才霸气
haiguifurong1
7大问题,hold住面试
避免电脑突然罢工,日常保养不能少
分享学习交流
经济适用_00cdr从右往左打字的方法
发布于: 10:00
查看: 106898|
简介: 今天向朋友们介绍cdr从右往左打字的方法,教程属于技巧分享,比较实用,希望教程对朋友们有所帮助!
今天转发一个cdr从右往左打字方法的小教程。也算一个小技巧。希望对飞特学习cdr的朋友们有用。看图吧:FEVTE编注:更多cdr教程讨论和作业提交请到飞特论坛coredraw交流区:
刚表态过的朋友 ()
话说孔雀胸用PS水到了小钱钱,我却只能用来水经验这就是世界上最遥远的距离啊好了话不
评论次数: 20
这篇教程教飞特的PS学习者们使用PS打造锈迹文字效果,教程制作出来的文字效果非常漂亮
评论次数: 7
通道抠图是非常快的,不过背景稍微复杂一点的头发抠图就要分步,分段去处理。从素材图
评论次数: 1
本文介绍的方法不是设计秘籍,更不是设计速成,主要分享的是由网友“毕业没小学”分享
评论次数: 1
很多同学在看调色教程时候都会碰到一个问题,拿着教程原图照着调,效果还不错,用自己
评论次数: 1
学画画从画一个鸡蛋开始,如果设计也如此,那么就从设计一句话开始吧。给你一句话,不
评论次数: 0
整体来说还是不错的cdr版本有点小
你可能喜欢
大家正在看
查看:2639
查看:1277
查看:1746
查看:4111
查看:6876
查看:3275
1393221731624151513161197938889821053
云南省公安厅网络安全保卫总队备案编号:05
All rights reserved!
回到顶部举报回到底部Javascript的新领域――动态图片处理之SVG
近三年前的一篇旧文,虽然在浏览器和相关技术标准方面有过时之处,但总体上对概念的理解、开发的思路和代码样例仍然有参考价值。
当Javascript被Netscape公司发明出来时,它被用来做一些琐细的事情,比如校验表单、计算日期、提示用户;随着Web的迅速发展,这种轻
巧而灵活的语言被委以越来越多的任务,动态地修改页面内容,一致地处理事件,甚至无刷新地和服务器交互。然而,与传统的客户端相
比,Javascript操作的对象限制在DOM模型之内,无法进行图形编程。所以长久以来,我们在设计网页时都仅仅是在&搭积木&,而且这些积
木只有一种形状&&长方形。这些长方形的积木就是应用在HTML元素上的&盒子&模型(box model)。每个盒子有边框 (border),边缘(
margin)和填充(padding)。我们只能控制这些盒子的大小和有限的样式。这些方块的集合对于构建一个传统的文档页面已经足够了。但是
Web的流行已经使网页承担的任务远远超出了传递文字信息。哪里有流行,哪里就有需求,哪里也就有创新。网页的美工设计已经使静态页面
的美观程度丝毫不逊色于传统的客户端程序的界面。而创造更加互动的用户界面更是使在页面上创建和修改图片的可能十分吸引人。于是,两
种技术应运而生,使得Javascript的功能扩展到图形领域。
数字化图片的两种方案
在介绍这两种技术之前,我们先来看看图片的数字化。将图片存储为数据有两种方案。其一为位图,也被称为光栅图。即是以自然的光学的眼
光将图片看成在平面上密集排布的点的集合。每个点发出的光有独立的频率和强度,反映在视觉上,就是颜色和亮度。这些信息有不同的编码
方案,在互联网上最常见的就是RGB。根据需要,编码后的信息可以有不同的位(bit)数&&位深。位数越高,颜色越清晰,对比度越高;占用
的空间也越大。另一项决定位图的精细度的是其中点的数量。一个位图文件就是所有构成其的点的数据的集合,它的大小自然就等于点数乘以
位深。位图格式是一个庞大的家族,包括常见的JPEG/JPG, GIF, TIFF, PNG, BMP。
第二种方案为矢量图。它用抽象的视角看待图形,记录其中展示的模式而不是各个点的原始数据。它将图片看成各个&对象&的组合,用曲线
记录对象的轮廓,用某种颜色的模式描述对象内部的图案(如用梯度描述渐变色)。比如一张留影,被看成各个人物和背景中各种景物的组合
。这种更高级的视角,正是人类看世界时在意识里的反映。矢量图格式有CGM, SVG, AI (Adobe Illustrator), CDR (CorelDRAW), PDF, SWF,&
矢量图中简单的几何图形,只需要几个特征数值,就可以确定。比如三角形,只需要确定三个顶点的坐标。圆只需要确定圆心的坐标和半径。
描述它的函数已知的曲线也只需要几个参数就能够确定。如正弦曲线、各种螺线等等。如果用位图记录这些几何图案,则需要包含组成线条的
各个像素的数据。除了大大节省空间,矢量图还具有完美的伸缩性。因为记录的是图形的特征,图形的尺寸任意变化时,都只是做着相似变换
,不会出现模糊和失真。相反位图的图片放大到超出原有大小时,各个像素点之间出现空缺,即使用某种算法填充,也会出现模糊锯齿等现象
,不如矢量图精确。因而矢量图很适合用于记录诸如符号、图标等简单的图形。而位图则适合于没有明显规律的、颜色丰富细腻的图片。
现在我们回到Web上的画图上。对应于图片数字化的两种方案,各有一种技术。我们按照它们产生的时间顺序来说。这篇文章中,笔者会介绍
第一种&&SVG。
第一种技术来自XML家族,叫做SVG(Scalabe Vetor Graphics)可缩放矢量图。作为一种通用的数据格式,XML自诞生之日起,就不断表现出表
达一切可表达之物的抱负,不仅要接纳新出现的各种信息,还要接收历史上以其他各种形式存储的数据。其扩张版图的雄心,不亚于任何一位
野心勃勃的君主。
XML适合于描述结构化的数据,所以你可能猜到了,如它的名字所示,SVG选择的视角是矢量图。实际上,SVG远不是第一种用XML描述图片的格
式,甚至也不是第一种在Web上提出的XML与矢量图的组合的标准。在它之前的1998年,Macromedia和Microsoft向W3C提交了VML(Vector&
Markup Language),Adobe和Sun提交了PGML(Precision Graphics Markup Language),这两种都是基于XML的矢量图规范。随后,不希望互联
网上的矢量图片标准被这些巨头垄断的其他公司在W3C内成立了一个专门小组SVG Working Group,在借鉴了前两种提案后,提出了SVG规范,
随后被接纳为相当于标准的W3C推荐(W3CRecommendation)。以下是迄今为止SVG的主要发展历程:
2001-9 & &SVG 1.0成为W3C推荐。
2003-1 & &SVG 1.1成为W3C推荐。并演化出SVGTiny,SVG Basic和SVG Full不同级别的细则。
SVG1.2在之后的几年中一直处于工作草稿(W3C Working Draft)的状态,现已确定会被SVG 2.0取代。
SVG2.0将会完全重写SVG 1.2,以加入更多诸如CSS,HTML5的新特性。
第一个简单的例子
下面是一个很简单的矢量图的定义。SVG中各种元素和属性的详细说明可以在专门的参考中找到。本文中会在例子中对一些重要的元素和属性
清单1. 一个SVG文件
&?xml version=&1.0& standalone=&no&?& &
&!DOCTYPE svg PUBLIC &-//W3C//DTD SVG 1.1//EN& &http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&& &
&svg xmlns=&http://www.w3.org/2000/svg& version=&1.1& width=&100%& height=&100%& & &
& & &circle cx=&100& cy=&100& r=&40& fill=&red&/& &
第一行的XML指令定义版本,并说明此文件引用到其他文件。第二行是文档类型定义,规定此XML中哪些是有效的SVG元素。这里引用的
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd正是第一行中standalone属性为no的原因。第三行开始是SVG的真正定义。circle元素
指定画一个圆。cx、cy和r属性分别指定圆心的横坐标、纵坐标和半径。fill属性指定用红色填充此圆内部的区域。
画图比看图容易
将这段&文本&粘贴进任何一个文本编辑器,然后将文件保存为一个SVG文件,如sun.svg。你就已经画完了一幅图&&一个红红的太阳。但是
想要看它却不那么容易。需要用一些专业的绘图软件,比如Adobe Illustrator,CorelDRAW和GIMP才能显示这个图片。你的电脑上已经有的
Windows画图、ACDSee都不支持这种格式。这是可以理解的,因为SVG是作为互联网上图片的一种标准。所以接下来看看怎样在中显示它
&&不幸的是,这仍然不像打开一幅JPG或者GIF那么简单。
各种浏览器对SVG的支持不一。总的说来,现在仍旧占据最大市场份额的IE不支持,其他主流浏览器,包括现在市场份额第二的Firefox以及
Chrome、Safari和Opera都对SVG标准有不同程度的支持。IE6、7、8对SVG都没有原生的支持,需要专门的插件(如Adobe SVG Viewer)才能显
示。目前还处于技术预览版的IE9将会支持。考虑到IE曾经占据的垄断性地位和微软有自身的竞争性的VML技术,这种&落后&并不奇怪。
不过这种情况,在发展迅速的浏览器市场瞬息万变。所以最好试试看您使用的浏览器支持下列哪种显示方法。
1. & & &使用&img&标签。
&img src=&sun.svg&& &
将SVG与传统的互联网图片格式同等使用(现在只有Chrome、Safari和Opera支持)。
2. & & &使用&embed&标签。
&embed src=&sun.svg& width=&300& height=&100& &
type=&image/svg+xml& &
pluginspage=&/svg/viewer/install/& /& &
pluginspage属性的值是Adobe公司为不原生支持SVG的浏览器开发的插件Adobe SVG Viewer的安装地址。日Adobe已经终止对该产品
3. & & &使用&object&标签。
&object data=&sun.svg& width=&300& height=&100& &
type=&image/svg+xml& &
codebase=&/svg/viewer/install/& /& &
4. & & &使用&iframe&标签。
&iframe src=&sun.svg& width=&300& height=&100& border=&0& style=&border-width:0&& &
&/iframe& &
下面是一个测试浏览器对html中各种使用SVG的方式是否支持的页面代码。sun.svg文件与该页面保存于同一目录。&
清单2. 测试浏览器对SVG的支持
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.0 Transitional//EN&& &
& &TITLE& SVG in HTML &/TITLE& &
&1. 使用&img&标签 &
&img src=&sun.svg& width=&300& height=&100&& &
&2. 使用&embed&标签 &
&embed src=&sun.svg& width=&300& height=&100& &
type=&image/svg+xml& &
pluginspage=&/svg/viewer/install/& /& &&
3. &使用&object&标签 &
&object data=&sun.svg& width=&300& height=&100& &
type=&image/svg+xml& &
codebase=&/svg/viewer/install/& /& &&
4. &使用&iframe&标签 &
&iframe src=&sun.svg& width=&300& height=&100& border=&0& style=&border-width:0&& &
&/iframe& &&
&&/BODY& &
如果仅仅是将SVG作为图片引用,则只发挥了它的静态功能。我们更感兴趣的是应用它的动态功能。SVG的动态功能包括两个方面。一为动画,
二为支持脚本编程。
SVG在设计时就加入了对动画的支持。这是通过另一种W3C颁布的动画语言SIML(Synchronized Multimedia Integration Language)实现的。
SIML被应用时,与SVG结合得非常紧密。它与SVG一样,是一种声明性(declarative)的标记语言,通过元素(element)和属性(attribute
)来定义动画的行为。这里只给出一个简单的例子,不做详细介绍。因为浏览器对它的支持还很有限;另外它声明性的本质也使表现力受到限
制,不如使用脚本自定义动画灵活。&
清单3. 用SIML实现的动画
&?xml version=&1.0& standalone=&no&?& &
&!DOCTYPE svg PUBLIC &-//W3C//DTD SVG 1.1//EN& &http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&& &
&svg xmlns=&http://www.w3.org/2000/svg&& &
& & &polygon points=&50,100 &100,100 &75,50& stroke=&#660000& fill=&#cc3333&& &
& & & & &animateTransform &
& & & & & & attributeName=&transform& &
& & & & & & begin=&0s& &
& & & & & & dur=&10s& &
& & & & & & type=&rotate& &
& & & & & & from=&0 0 0& &
& & & & & & to=&360 60 60& &
& & & & & & repeatCount=&indefinite& &&
& & & & /& &
& & &/polygon& &
polygon元素指定画一个多变形,这里给定了三个顶点,所以是一个三角形。
将上面的代码保存成一个SVG文件,在一个页面中引用,如果您的浏览器支持SIML,屏幕上会显示一个不断旋转的红色三角形;如果您的浏览
器只支持SVG,将看到一个静止的红色三角形。&
脚本可编程性
SVG是一个XML文件,用于XML编程的两种模型DOM和SAX也适用于它。因为SVG是被设计用于互联网,所以通过script和DOM访问它就是最重
要的应用模式。我们已经熟悉通过Javascript和DOM动态地修改HTML,同样我们也可以在浏览器中动态地创建、修改和删除图片,这也将是本
文之后在SVG方面的重点。
为了演示这些动态功能,我们采取和上面不同的在页面中使用SVG的方式&&在XHTML(XML的XML版本)直接写入SVG的源文本,而上面的四种
方式SVG的定义都保存在和页面不同的另一个文件中。这样做有两个原因。一是在支持XHTML和SVG在浏览器中,可以通过Javascript直接访问
和修改SVG。二是在互联网的未来标准HTML 5中,SVG就可以这样直接在HTML中定义,就像其他HTML元素一样。
之后的几个例子都可以在Firefox中运行,但无法使用IE。因为要到版本9,IE才会加入对XHTML的支持(目前的IE只支持将XHTML作为HTML解释
),再次显示了拥抱公开标准的迟缓。&
我们的第一个例子是一个进度条。在Firefox中载入下面的XHTML页面,会显示一个绿色的运动的进度条。
清单4. 进度条代码
& xmlns=&http://www.w3.org/1999/xhtml&&
& & &head&
& & & & &title&进度条&/title&
& & & & &script language='JavaScript'&
& & & & & & /* &![CDATA[ */
& & & & & & function ProgressBar(info){
& & & & & & & & var stem = {};//此函数最后返回的代表进度条的对象。
& & & & & & & & var done = 0, length, outline,//声明内部变量。
& & & & & & & &&
& & & & & & & & bar = document.getElementById('done');//进度条中绿色的变化部分。
& & & & & & & & length = 80;
& & & & & & & &&
& & & & & & & & //重置进度到零。
& & & & & & & & function reset(){
& & & & & & & & & & return to(0);
& & & & & & & & }
& & & & & & & & //设置进度到某个值。
& & & & & & & & function to(value){
& & & & & & & & & & if (value &= 100) {
& & & & & & & & & & & & done = 100;
& & & & & & & & & & & & bar.setAttribute('width', length);
& & & & & & & & & & }
& & & & & & & & & & else {
& & & & & & & & & & & & done =
& & & & & & & & & & & & bar.setAttribute('width', Math.round(done * length / 100));
& & & & & & & & & & }
& & & & & & & & & &
& & & & & & & & }
& & & & & & & & //进度变化某个值。
& & & & & & & & function advance(step){
& & & & & & & & & & return to(done + step);
& & & & & & & & }
& & & & & & & & //以下给进度条对象添加方法。
& & & & & & & & //获得当前进度值。
& & & & & & & & stem.getDone = function(){
& & & & & & & & & & return done
& & & & & & & & };
& & & & & & & & stem.reset =
& & & & & & & & stem.to =
& & & & & & & & stem.advance =
& & & & & & & &//返回可供脚本使用的进度条对象。
& & & & & & }
& & & & & & //测试进度条对象。
& & & & & & function testBar(){
& & & & & & & & var bar = ProgressBar();
& & & & & & & & //此内部函数每运行一次,增加进度值1,直到进度值为100。
& & & & & & & & function test(){
& & & & & & & & & & if (bar.getDone() === 100) {
& & & & & & & & & & & & clearInterval(id);
& & & & & & & & & & }
& & & & & & & & & & else {
& & & & & & & & & & & & bar.advance(1);
& & & & & & & & & & }
& & & & & & & & }
& & & & & & & & //每十分之一秒改变一次进度。
& & & & & & & & var id = setInterval(test, 100);
& & & & & & }
& & & & & & //页面载入后开始测试。
& & & & & & window.addEventListener('load', testBar, true);
& & & & & & /* ]]& */
& & & & &/script&
& & &/head&
& & &body&
& & & & &div id='svgDiv'&
& & & & & & &svg xmlns=&http://www.w3.org/2000/svg& version=&1.1& viewBox=&0 0 100 100& style=&border:1&
width:100 height:100 &&
& & & & & & & & &g id='progBar'&
& & & & & & & & & & &rect x='10' y='45' width='80' height='10' stroke='grey' fill='white'/&
& & & & & & & & & & &rect id='done' x='10' y='45' width='0' height='10' fill='green'/&
& & & & & & & & &/g&
& & & & & & &/svg&
& & & & &/div&
& & &/body&
&来自CODE的代码片
进度条的代码.xhtml
对这个XHTML需要做一些说明。
&htmlxmlns=&http://www.w3.org/1999/xhtml&&
XHTML的根元素为html元素,xmlns属性指定XHTML的命名空间。
&svg xmlns=&http://www.w3.org/2000/svg& version=&1.1& viewBox=&0 0 100 100& style=&border:1 width:100&
height:100 &&
在XHTML中直接插入svg元素,并指定命名空间等其他属性。
viewBox定义矢量图可见的坐标空间,四个数字依次是原点的x坐标、y坐标、平面的宽度、高度。SVG的坐标空间符合计算机中指定屏幕空间的
惯例,x坐标轴的正方向向右,y坐标轴的正方向向下。
style属性指定svg元素的各种外观特性。SVG与HTML一样,可以应用定义外观,并且有一些专门的特性。
1. & & &XHTML中的Javascript代码被包含在/* &![CDATA[ */ 和 /* ]]& */ 之间。
在HTML文件中不需要这样做。因为在HTML中&script&标签内的Javascript代码被解释为CDATA(Character Data,XML中的一种类型,用于包含
任意的字符数据);而在XHTML中&script&标签内的部分被解释为PCDATA(Parsed Character Data,也是XML中的一种类型,为字符数据和元
素的混合内容),所以也要通过XML的语法检查,而Javascript代码显然不符合XML的标签的定义语法。解决方法就是在代码外人工加上!
[CDATA[和 ]]&标注,使得XML的语法校验器忽略这段内容。但是这样会带来第二个问题,有些浏览器不认识CDATA标注,因而这些代码又无法
通过Javascript的语法检查。所以我们在CDATA标注两侧再加上Javascript的注释标记。这样&script&标签内的代码既能通过XML的语法检查,
又能被Javascript引擎认识。
2. & & &&svg&标签内有一个&g&标签和两个&rect&标签。
g元素用于分组。分组不仅可以使SVG的内容结构清晰,同一组内的对象还可以被集体操作。rect元素代表一个矩形;x、y、width和height属
性分别指定矩形左上顶点的横坐标、纵坐标和矩形的宽度、长度;stroke属性指定图形外框的线条颜色。我们用第一个空心的矩形显示进度条
的外框,第二个实心的绿色矩形显示变化的进度。为了在脚本中方便地访问,我们设置了绿色矩形的id属性。
3. & & &代码说明
在Javascript脚本中我们用DOM先后获得绿色矩形对象并修改它的宽度属性。getElementById和setAttribute的用法和在HTML中没有两样。值
得注意的是,有些我们在操作HTML时使用的方法,在XML中是不存在的,如根据名称获取元素的getElementsByName。&
这个例子中前三点特别的设定有些麻烦,不过这些在正在获得越来越多支持并且很快将成为互联网的现实标准的HTML 5中都是不必要的。在
HTML 5中不需要在html和svg元素中指定命名空间,svg和其中的各种标签会被自动识别。Javascript代码也会和在现在的HTML页面中一样,不
需要在两侧加上CDATA标注。&
SVG中的元素同样支持用户界面的事件。因此我们可以通过鼠标、键盘触发的各种事件改变SVG中的图形。这就使得在整个页面上可以进行丰富
的图形的互动,而不需要借助于Flash插件。下面通过几个例子来说明对事件的运用,使用的都是DOM3事件规范中定义的方法。&
HTML中的单选钮、复选框、下拉列表等标准控件为用户输入和显示数据提供了各种友好的方式。过去我们只能&使用&它们,现在我们可以模
拟甚至创造新的控件。我们先来模拟一个简单的单选钮的图形和行为。
清单5. 模拟的单选钮1之代码
&html xmlns=&http://www.w3.org/1999/xhtml&&
& & &head&
& & & & &title&模拟单选钮1&/title&
& & & & &script language=''&
& & & & & & /* &![CDATA[ */
& & & & & & function mimicRadio(){
& & & & & & & & var radName = 'pRadio', selectedId = 'pRadioSelected';
& & & & & & & & var ns = 'http://www.w3.org/2000/svg';//SVG元素的命名空间。
& & & & & & & & var circles = document.getElementsByTagNameNS(ns, 'circle');
& & & & & & & & var selected = document.getElementById(selectedId);//用于模拟选中状态的实心圆。
& & & & & & & &
& & & & & & & & for (var i = 0; i & circles. i++) {
& & & & & & & & & & circle = circles[i];
& & & & & & & & & & if (circle.getAttribute('name') === radName) {
//上面提到过,在XML的DOM中,没有getElementsByName方法,所以我们需要手工检查
元素的name属性。
//为circle元素添加鼠标响应。
//通过设置实心圆的位置和style中的display值,模拟单选钮被选中的行为。
& & & & & & & & & & & & circle.addEventListener('click', function(){
& & & & & & & & & & & & & & selected.setAttribute('cx', this.getAttribute('cx'));
& & & & & & & & & & & & & & selected.setAttribute('cy', this.getAttribute('cy'));
& & & & & & & & & & & & & & selected.style.display = 'block';
& & & & & & & & & & & & }, true)
& & & & & & & & & & }
& & & & & & & & }
& & & & & & & &&
& & & & & & }
& & & & & &&
& & & & & & window.addEventListener('load', mimicRadio, true);
& & & & & & /* ]]& */
& & & & &/script&
& & &/head&
& & &body&
& & & & &div id='svgDiv'&
& & & & & & &svg xmlns=&http://www.w3.org/2000/svg& version=&1.1& viewBox=&0 0 120 100& style=&border:1&
width:120 height:100 &&
& & & & & & & & &circle name='pRadio' cx=&20& cy=&50& r=&6& stroke=&black& stroke-width='0.5' fill=&white& /&
& & & & & & & & &text x='28' y='53'&
& & & & & & & & & & 上升
& & & & & & & & &/text&
& & & & & & & & &circle name='pRadio' cx=&70& cy=&50& r=&6& stroke=&black& stroke-width='0.5' fill=&white&/&
& & & & & & & & &text x='78' y='53'&
& & & & & & & & & & 下降
& & & & & & & & &/text&
& & & & & & & & &circle id='pRadioSelected' cx=&20& cy=&50& r=&2& style='display:'/&
& & & & & & &/svg&
& & & & &/div&
& & &/body&
&来自CODE的代码片
模拟的单选钮之代码.xhtml
代码说明:
1. & & &SVG
这里共有三个circle元素,其中两个作为空的选项的圆圈,第三用于标记选中的状态。circle中控制大小和位置的几项属性我们之前都看过了
。stroke-width属性用于控制图形外框线条的宽度。name属性是我们自定义的,用于将一组单选钮关联在一起。
在SVG中嵌入文字需要使用text元素。x和y属性用于控制文字的位置,x为左端的坐标,y为下端的坐标。&
当然,以上只是模拟了单选钮响应鼠标点击的外观,真正的控件还必须包括读和写数据。为此,我们将扩展上面的例子,提供一个可以单独使
用的&单选钮&。
以下为实现这样一个单选钮的代码。代码中有详细的注释。&
&html xmlns=&http://www.w3.org/1999/xhtml&&
& & &head&
& & & & &title&模拟单选钮2&/title&
& & & & &script language='JavaScript'&
& & & & & & /* &![CDATA[ */
& & & & & &&
& & & & & & //创建一个可独立使用的模拟的单选钮
& & & & & & function RadioButton(id){
& & & & & & & & var radName = 'pRadio', markName = 'mark';
& & & & & & & & var stem = {};
& & & & & & & & var checkedIndex = -1,
& & & & & & & & var item, items = [],
& & & & & & & & var ns = 'http://www.w3.org/2000/svg';
& & & & & & & & //给各个单选钮添加鼠标单击的事件处理程序。
& & & & & & & & function init(){
& & & & & & & & & & var rad = document.getElementById(id);
& & & & & & & & & & var circles = rad.getElementsByTagNameNS(ns, 'circle');
& & & & & & & & & & for (var i = 0, i & circles. i++) {
& & & & & & & & & & & & circle = circles[i];
& & & & & & & & & & & & if (circle.getAttribute('name') === radName) {
& & & & & & & & & & & & & & items.push(circle);
& & & & & & & & & & & & & & circle.addEventListener('click', function(){
& & & & & & & & & & & & & & & & //这里的index是根据各个单选钮在svg中出现的先后顺序。
& & & & & & & & & & & & & & & & setIndex(items.indexOf(this)); & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & }, true)
& & & & & & & & & & & & }
& & & & & & & & & & & & else&
& & & & & & & & & & & & & & if (circle.getAttribute('name') === markName) {
& & & & & & & & & & & & & & & & mark =
& & & & & & & & & & & & & & }
& & & & & & & & & & }
& & & & & & & & & &&
& & & & & & & & }
& & & & & & & & //选中某项后,更新数据和显示。
& & & & & & & & function setIndex(index){
& & & & & & & & & & checkedIndex =
& & & & & & & & & & var item = items[index];
& & & & & & & & & & value = item.getAttribute('value');
& & & & & & & & & & mark.setAttribute('cx', item.getAttribute('cx'));
& & & & & & & & & & mark.setAttribute('cy', item.getAttribute('cy'));
& & & & & & & & & & mark.style.display = 'block';
& & & & & & & & }
& & & & & & & & //供在脚本中选择某项使用,相当于在HTML中设置某个单选钮的checked属性。
& & & & & & & & stem.setCheckedIndex = function(index){
& & & & & & & & & & if (index & -1 && index & items.length) {
& & & & & & & & & & & & setIndex(index);
& & & & & & & & & & }
& & & & & & & & }
& & & & & & & & //读取选中项的index,相当于在HTML中读取某个单选钮的checked属性。
& & & & & & & & stem.getCheckedIndex = function(){
& & & & & & & & & & return checkedI
& & & & & & & & }
& & & & & & & & //读取选中项的值。
& & & & & & & & stem.getValue = function(){
& & & & & & & & & &
& & & & & & & & }
& & & & & & & &&
& & & & & & & & init();
& & & & & & & &
& & & & & & }
& & & & & & //测试模拟的单选钮。
& & & & & & function testRadio(){
& & & & & & & & //获取用脚本和SVG模拟的单选钮。
& & & & & & & & var rad = RadioButton('radColor');
& & & & & & & & //测试选中第二项。
& & & & & & & & rad.setCheckedIndex(1);
& & & & & & & & //使用一个按钮,显示单选钮选中项的序号和值。
& & & & & & & & document.getElementById('testRadio').addEventListener('click', function(){
& & & & & & & & & & var msg = 'index: ' + rad.getCheckedIndex() + ' value: ' + rad.getValue();
& & & & & & & & & & document.getElementById('message').innerHTML =
& & & & & & & & }, true)
& & & & & & }
& & & & & &&
& & & & & & window.addEventListener('load', testRadio, true);
& & & & & & /* ]]& */
& & & & &/script&
& & &/head&
& & &body&
& & & & 模拟单选钮
& & & & &input type='button' id='testRadio' value='显示单选钮的选中项'/&
& & & & &br/&
& & & & &div id=&message&&
& & & & &/div&
& & & & &div id='svgDiv'&
& & & & & & &svg xmlns=&http://www.w3.org/2000/svg& version=&1.1& viewBox=&0 0 100 100& style=&border:1&
width:100 height:100 &&
& & & & & & & & &g id='radColor'&
& & & & & & & & & & &circle name='pRadio' cx=&20& cy=&20& r=&6& stroke=&black& stroke-width='0.5' fill=&white& value='red'/&
& & & & & & & & & & &text x='28' y='26'&
& & & & & & & & & & & & &红色
& & & & & & & & & & &/text&
& & & & & & & & & & &circle name='pRadio' cx=&20& cy=&50& r=&6& stroke=&black& stroke-width='0.5' fill=&white&&
value='green'/&
& & & & & & & & & & &text x='28' y='56'&
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & 绿色
& & & & & & & & & & &/text&
& & & & & & & & & & &circle name='pRadio' cx=&20& cy=&80& r=&6& stroke=&black& stroke-width='0.5' fill=&white&&
value='blue'/&
& & & & & & & & & & &text x='28' y='86'&
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &蓝色
& & & & & & & & & & &/text&
& & & & & & & & & & &circle name='mark' cx=&20& cy=&20& r=&2& style='display:'/&
& & & & & & & & &/g&
& & & & & & &/svg&
& & & & &/div&
& & &/body&
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。}

我要回帖

更多关于 cdr格式怎么转换成jpg 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信