xta和with两种各种图片格式的区别视频文件 有什么区别

刘诗诗的穴,iaojiao97,发散乱,面容凶恶。叼
发散乱,面容凶恶。叼了跟牙签,很是嚣张的说道。
“是,副掌柜的。”伙计一脸焦急的按照王文轩
&&&&  嘟嘟不在小果园里,估计又到哪儿搜罗它的种子,“蓝子,虽然还没九月九,我们一起去山顶兜兜风。”&&&&
“堂姐。”程一笑着喊道。“二福哥yazhousetunidunde又送你东西了。这耳yazhousetunidunde环好漂亮。”程甜笑而不语。&&&&
苏艳艳瞪着美眸看着罗敏生,惨白的脸色,发白的嘴唇,看得罗敏生都得为她担心,可让罗敏生万万没有想到iaojiao97的是,这女人竟然叫自己抱紧她的屁股,这、这是怎么回事?&&&&
程一本来心情就不好了,如今程文武还在火上添油淫意帝国。不过赖八等人很是不错。这得好好嘉奖一番。“大伯父,我们都是傻子。那你是什么www998jjjcom。傻子的大哥,还是连傻子都不如。”程一语气平和的说道。&&&&
“你――你最好把嘴巴给我闭上,什么叫我们有一腿了,我不是告诉你了我们只是同事关系,正常的同事关系,你清楚了没?跟你这种弱智,一时很难解释清楚的。”&&&&  蛎锄是螺纹钢筋打成的,一头被敲打成扁状。丁文挥动着蛎锄,刮着石面刷刷作响。因为没人来采,很快采了一堆带着蛎内的贝壳,看着成果不俗,丁文更干劲十足,装了两鱼箱满满的。&&&&  
“这里主事的人是谁?”看起来是刘诗诗的穴头头模样的男子。他头发散乱,面容凶恶。叼了跟牙签,很是嚣张的说道。&&&&
“是,副掌柜的。”伙计一脸焦急的按照王文轩说的去办了。到厨房去立马烧水了。&&&&
罗敏生抽出一根香烟将其点燃,对着海风拼命的抽着。&&&&
虽然有着小插曲。那些冶铁锅炉还是顺利的搬到了程家的冶铁作坊去。收拾了下,程一安排了新来的工人陈进福等人在工棚住下。之后在冶铁作坊吃过晚饭之后。程一和程甜等人才和程达理一起回到家中。&&&&
友情链接:JSON和JSONP的区别 | 标点符
先前的概念中对JSON还是比较熟悉,对JSONP不是特别的清楚,整理完相关知识发现才豁然开朗。简单的说JSON是一种数据交换格式,而JSONP是一种非官方跨域数据交互协议。JSON是“暗号”,而JSONP则是接头方式。一个是描述信息的格式,一个是信息传递双方约定的方法。
一、什么是JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于, 的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
空白可以加入到任何符号之间。 以下描述了完整的语言。
JSON的优点:
基于纯文本,跨平台传递极其简单;
Javascript原生支持,后台语言几乎全部支持;
轻量级数据格式,占用字符数量极少,特别适合互联网传递;
可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;
容易编写和解析,当然前提是你要知道数据结构;
JSON实例:
// 描述一个人
var person = {
"Name": "Bob",
"Age": 32,
"Company": "IBM",
"Engineer": true
// 获取这个人的信息
var personAge = person.A
// 描述几个人
var members = [
"Name": "Bob",
"Age": 32,
"Company": "IBM",
"Engineer": true
"Name": "John",
"Age": 20,
"Company": "Oracle",
"Engineer": false
"Name": "Henry",
"Age": 45,
"Company": "Microsoft",
"Engineer": false
// 读取其中John的公司名称
var johnsCompany = members[1].C
// 描述一次会议
var conference = {
"Conference": "Future Marketing",
"Date": "",
"Address": "Beijing",
"Members":
"Name": "Bob",
"Age": 32,
"Company": "IBM",
"Engineer": true
"Name": "John",
"Age": 20,
"Company": "Oracle",
"Engineer": false
"Name": "Henry",
"Age": 45,
"Company": "Microsoft",
"Engineer": false
// 读取参会者Henry是否工程师
var henryIsAnEngineer = conference.Members[2].E
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
// 描述一个人&var person = {&&&&"Name": "Bob",&&&&"Age": 32,&&&&"Company": "IBM",&&&&"Engineer": true}&// 获取这个人的信息&var personAge = person.Age;&// 描述几个人&var members = [&&&&{&&&&&&&&"Name": "Bob",&&&&&&&&"Age": 32,&&&&&&&&"Company": "IBM",&&&&&&&&"Engineer": true&&&&},&&&&{&&&&&&&&"Name": "John",&&&&&&&&"Age": 20,&&&&&&&&"Company": "Oracle",&&&&&&&&"Engineer": false&&&&},&&&&{&&&&&&&&"Name": "Henry",&&&&&&&&"Age": 45,&&&&&&&&"Company": "Microsoft",&&&&&&&&"Engineer": false&&&&}]&// 读取其中John的公司名称&var johnsCompany = members[1].Company;&// 描述一次会议&var conference = {&&&&"Conference": "Future Marketing",&&&&"Date": "",&&&&"Address": "Beijing",&&&&"Members":&&&&[&&&&&&&&{&&&&&&&&&&&&"Name": "Bob",&&&&&&&&&&&&"Age": 32,&&&&&&&&&&&&"Company": "IBM",&&&&&&&&&&&&"Engineer": true&&&&&&&&},&&&&&&&&{&&&&&&&&&&&&"Name": "John",&&&&&&&&&&&&"Age": 20,&&&&&&&&&&&&"Company": "Oracle",&&&&&&&&&&&&"Engineer": false&&&&&&&&},&&&&&&&&{&&&&&&&&&&&&"Name": "Henry",&&&&&&&&&&&&"Age": 45,&&&&&&&&&&&&"Company": "Microsoft",&&&&&&&&&&&&"Engineer": false&&&&&&&&}&&&&]}&// 读取参会者Henry是否工程师&var henryIsAnEngineer = conference.Members[2].Engineer;
二、什么是JSONP?
JSONP(JSON with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域要资料。由于同源策略,一般来说位于
的网页无法与不是
的服务器沟通,而 HTML 的 &script& 元素是一个例外。利用&script& 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的 JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
为了理解这种模式的原理,先想像有一个回传 JSON 文件的 URL,而 JavaScript 程式可以用 XMLHttpRequest 跟这个 URL 要资料。假设我们的 URL 是/RetrieveUser?UserId=xxx 。假设小明的 UserId 是 1823,且当浏览器透过 URL 传小明的 UserId,也就是抓取/RetrieveUser?UserId=1823 ,得到:
{"Name": "小明", "Id" : 1823, "Rank": 7}
{"Name": "小明", "Id" : 1823, "Rank": 7}
这个 JSON 资料可能是依据传过去 URL 的查询参数动态产生的。
这个时候,把 &script& 元素的 src 属性设成一个回传 JSON 的 URL 是可以想像的,这也代表从 HTML 页面透过 script 元素抓取 JSON 是可能的。
然而,一份 JSON 文件并不是一个 JavaScript 程式。为了让浏览器可以在 &script& 元素执行,从 src 里 URL 回传的必须是可执行的 JavaScript。在 JSONP 的使用模式里,该 URL 回传的是由函数呼叫包起来的动态生成 JSON,这就是JSONP 的“填充(padding)”或是“前辍(prefix)”的由来。
惯例上浏览器提供回调函数的名称当作送至服务器的请求中命名查询参数的一部份,例如:
&script type="text/javascript" src="/RetrieveUser?UserId=1823&jsonp=parseResponse"& &/script&
&script type="text/javascript" src="/RetrieveUser?UserId=1823&jsonp=parseResponse"& &/script&
服务器会在传给浏览器前将 JSON 数据填充到回调函数(parseResponse)中。浏览器得到的回应已不是单纯的资料叙述而是一个脚本。在本例中,浏览器得到的是:
parseResponse({"Name": "Cheeso", "Id" : 1823, "Rank": 7})
parseResponse({"Name": "Cheeso", "Id" : 1823, "Rank": 7})
虽然这个填充(前辍)“通常”是浏览器执行背景中定义的某个回调函数,它也可以是变量赋值、if 叙述或者是其他 JavaScript 叙述。JSONP 要求(也就是使用 JSONP 模式的请求)的回应不是 JSON 也不被当作 JSON 解析——回传内容可以是任意的运算式,甚至不需要有任何的 JSON,不过惯例上填充部份还是会触发函数调用的一小段 JavaScript 片段,而这个函数呼叫是作用在 JSON 格式的资料上的。
另一种说法—典型的 JSONP 就是把既有的 JSON API 用函数呼叫包起来以达到跨域存取的解法。为了要启动一个 JSONP 呼叫(或者说,使用这个模式),你需要一个 script 元素。因此,浏览器必须为每一个 JSONP 要求加(或是重用)一个新的、有所需 src 值的 &script& 元素到 HTML DOM 里—或者说是“注入”这个元素。浏览器执行该元素,抓取 src 里的 URL,并执行回传的 JSON。也因为这样,JSON 被称作是一种“让使用者利用 script 元素注入的方式绕开同源策略”的方法。
使用远端网站的 script 标签会让远端网站得以注入任何的内容至网站里。如果远端的网站有 JavaScript 注入漏洞,原来的网站也会受到影响.现在有一个正在进行计划在定义所谓的 JSON-P 严格安全子集,使浏览器可以对 MIME 类别是“application/json-p”请求做强制处理。如果回应不能被解析为严格的 JSON-P,浏览器可以丢出一个错误或忽略整个回应。
粗略的 JSONP 部署很容易受到跨网站的伪造要求(CSRF/XSRF)的攻击。因为 HTML &script& 标签在浏览器里不遵守同源策略,恶意网页可以要求并取得属于其他网站的 JSON 资料。当使用者正登入那个其他网站时,上述状况使得该恶意网站得以在恶意网站的环境下操作该 JSON 资料,可能泄漏使用者的密码或是其他敏感资料。
只有在该 JSON 资料含有不该泄漏给第三方的隐密资料,且服务器仅靠浏览器的同源策略阻挡不正常要求的时候这才会是问题。若服务器自己决定要求的专有性,并只在要求正常的情况下输出资料则没有问题。只靠 Cookie 并不够决定要求是合法的,这很容易受到跨网站的伪造要求攻击。
JSONP的客户端具体实现:
下面来说明一下jsonp在客户端的实现:
1、我们知道,哪怕跨域js文件中的代码(当然指符合web脚本安全策略的),web页面也是可以无条件执行的。
远程服务器根目录下有个remote.js文件代码如下:
alert('我是远程文件');
alert('我是远程文件');
本地服务器下有个jsonp.html页面代码如下:
&html xmlns="http://www.w3.org/1999/xhtml"&
&title&&/title&
&script type="text/javascript" src="/remote.js"&&/script&
&html xmlns="http://www.w3.org/1999/xhtml"&&head&&title&&/title&&script type="text/javascript" src="/remote.js"&&/script&&/head&&body&&&/body&&/html&
毫无疑问,页面将会弹出一个提示窗体,显示跨域调用成功。
2、现在我们在jsonp.html页面定义一个函数,然后在远程remote.js中传入数据进行调用。
jsonp.html页面代码如下:
&html xmlns="http://www.w3.org/1999/xhtml"&
&title&&/title&
&script type="text/javascript"&
var localHandler = function(data){
alert('我是本地函数,可以被跨域的remote.js文件调用,远程js带来的数据是:' + data.result);
&script type="text/javascript" src="/remote.js"&&/script&
1234567891011121314
&html xmlns="http://www.w3.org/1999/xhtml"&&head&&title&&/title&&script type="text/javascript"&var localHandler = function(data){alert('我是本地函数,可以被跨域的remote.js文件调用,远程js带来的数据是:' + data.result);};&/script&&script type="text/javascript" src="/remote.js"&&/script&&/head&&body&&&/body&&/html&
remote.js文件代码如下:
localHandler({“result”:”我是远程js带来的数据”});
运行之后查看结果,页面成功弹出提示窗口,显示本地函数被跨域的远程js调用成功,并且还接收到了远程js带来的数据。很欣喜,跨域远程获取数据的目的基本实现了,但是又一个问题出现了,我怎么让远程js知道它应该调用的本地函数叫什么名字呢?毕竟是jsonp的服务者都要面对很多服务对象,而这些服务对象各自的本地函数都不相同啊?我们接着往下看。
聪明的开发者很容易想到,只要服务端提供的js脚本是动态生成的就行了呗,这样调用者可以传一个参数过去告诉服务端“我想要一段调用XXX函数的js代码,请你返回给我”,于是服务器就可以按照客户端的需求来生成js脚本并响应了。
看jsonp.html页面的代码:
&html xmlns="http://www.w3.org/1999/xhtml"&
&title&&/title&
&script type="text/javascript"&
// 得到航班信息查询结果后的回调函数
var flightHandler = function(data){
alert('你查询的航班结果是:票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');
// 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
var url = "/jsonp/flightResult.aspx?code=CA1998&callback=flightHandler";
// 创建script标签,设置其属性
var script = document.createElement('script');
script.setAttribute('src', url);
// 把script标签加入head,此时调用开始
document.getElementsByTagName('head')[0].appendChild(script);
123456789101112131415161718192021
&html xmlns="http://www.w3.org/1999/xhtml"&&head&&title&&/title&&script type="text/javascript"&// 得到航班信息查询结果后的回调函数var flightHandler = function(data){alert('你查询的航班结果是:票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');};// 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)var url = "/jsonp/flightResult.aspx?code=CA1998&callback=flightHandler";// 创建script标签,设置其属性var script = document.createElement('script');script.setAttribute('src', url);// 把script标签加入head,此时调用开始document.getElementsByTagName('head')[0].appendChild(script);&/script&&/head&&body&&&/body&&/html&
这次的代码变化比较大,不再直接把远程js文件写死,而是编码实现动态查询,而这也正是jsonp客户端实现的核心部分,本例中的重点也就在于如何完成jsonp调用的全过程。
我们看到调用的url中传递了一个code参数,告诉服务器我要查的是CA1998次航班的信息,而callback参数则告诉服务器,我的本地回调函数叫做flightHandler,所以请把查询结果传入这个函数中进行调用。
OK,服务器很聪明,这个叫做flightResult.aspx的页面生成了一段这样的代码提供给jsonp.html(服务端的实现这里就不演示了,与你选用的语言无关,说到底就是拼接字符串):
flightHandler({
"code": "CA1998",
"price": 1780,
"tickets": 5
flightHandler({"code": "CA1998","price": 1780,"tickets": 5});
我们看到,传递给flightHandler函数的是一个json,它描述了航班的基本信息。运行一下页面,成功弹出提示窗口,jsonp的执行全过程顺利完成!
4、到这里为止的话,相信你已经能够理解jsonp的客户端实现原理了吧?剩下的就是如何把代码封装一下,以便于与用户界面交互,从而实现多次和重复调用。
jQuery对JSONP的实现
我们依然沿用上面那个航班信息查询的例子,假定返回jsonp结果不变:
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns="http://www.w3.org/1999/xhtml" &
&title&Untitled Page&/title&
&script type="text/javascript" src=jquery.min.js"&&/script&
&script type="text/javascript"&
jQuery(document).ready(function(){
type: "get",
async: false,
url: "/jsonp/flightResult.aspx?code=CA1998",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(json){
alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。');
error: function(){
alert('fail');
12345678910111213141516171819202122232425262728
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&&html xmlns="http://www.w3.org/1999/xhtml" &&head&&title&Untitled Page&/title&&script type="text/javascript" src=jquery.min.js"&&/script&&script type="text/javascript"&jQuery(document).ready(function(){&$.ajax({type: "get",async: false,url: "/jsonp/flightResult.aspx?code=CA1998",dataType: "jsonp",jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据success: function(json){alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。');},error: function(){alert('fail');}});});&/script&&/head&&body&&/body&&/html&
为什么我这次没有写flightHandler这个函数呢?而且竟然也运行成功了!这就是jQuery的功劳了,jquery在处理jsonp类型的ajax时自动帮你生成回调函数并把数据取出来供success属性方法来调用。
ajax与jsonp的异同
ajax和jsonp这两种技术在调用方式上“看起来”很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此jquery和ext等框架都把jsonp作为ajax的一种形式进行了封装;
但ajax和jsonp其实本质上是不同的东西。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加&script&标签来调用服务器提供的js脚本。
所以说,其实ajax与jsonp的区别不在于是否跨域,ajax通过服务端代理一样可以实现跨域,jsonp本身也不排斥同域的数据的获取。
还有就是,jsonp是一种方式或者说非强制性协议,如同ajax一样,它也不一定非要用json格式来传递数据,如果你愿意,字符串都行,只不过这样不利于用jsonp提供公开服务。
总而言之,jsonp不是ajax的一个特例,哪怕jquery等巨头把jsonp封装进了ajax,也不能改变着一点!
参考文档:
http://www.json.org/json-zh.html
http://zh.wikipedia.org/zh-cn/JSONP
引用地址:/json-jsonp.html
喜欢它就赶紧收藏它!
想让您的头像与众不同,请注册photoshop文件菜单中的另存为和另存为网页格式的区别
阅读:187次&&&时间: 00:44:50&&
一周多前在网上搜到的一篇技术文档,觉得还不错。虽然平时用ps时大概也能知道哪种保存方式更合适,但基本停留在经验基础上,而这篇文章对另存为和另存为网页格式有详细的文件数据分析,觉得比较有做参考资料的价值,所以决定翻译一下。翻译之前觉得很短一篇,不过真正翻时感觉长了五倍都不止,一看全篇英文就犯困,翻翻停停拖了很久才算差不多了。我用英文版ps,很多术语不清楚中文怎么说,外加英语烂,所以可能翻译有些问题,望大家指正。--tea00===============================================原作者 Photoshop Save As vs Save For WebOne of the more confusing options in Photoshop CS2 arises when it comes time to save your edited image. There are two methods to save your photo: using the Save As dialog box or using the Save For Web dialog box. This article answers the question: what are the differences between save for web and save as, and when should I use Save for Web?Photoshop offers two options to save your image after editing:&& & & &File -& Save As ...&& & & &File -& Save For Web ...Both of these menu otpions create an output JPEG file from your working image, but they differ in both the available options, flexibility and representation of JPEG compression quality.Photoshop另存为和另存为网页格式Photoshop cs2中最易混淆的选项之一是在保存编辑过的图片时,有两种保存图片的方式&&另存和另存为网页格式。本篇文章将解答另存和另存为网页格式有何区别,以及何时应该选择保存为web格式。Photoshop提供了两种保存编辑过的图片的方式&& & & &文件-&另存为&& & & &文件-&另存为网页格式两种保存方式都可以输出jpeg格式图片,但两种方式在jpeg压缩质量的选项、灵活度和表现上有所区别。===============================================Quick ChoiceIf you plan to...【You should use】Create images for your website, or optimize the file as small as possible【Save For Web 】Share images with others, and you want viewers knowing shot time/date, etc. 【Save As 】Share images with others, and you do not want others knowing shot time/date, etc. For example, stock photos, or concerns over privacy 【Save For Web】Convert your image to a given file size, or you want interactive feedback on quality settings 【Save For Web】... for all other cases【Save As】快速选择如果你想要&【那么选择的保存方式是】创建网页使用的图像,或者想尽可能的优化图像文件的体积【另存为网页格式】和他人分享图片,而且你希望别人知道你拍摄照片的时间日期等【另存为】和他人分享图片,但你不希望别人知道你拍摄照片的时间日期等,比如用于图片库,或是需要保护隐私【另存为网页格式】把图像文件压缩到指定的大小,或者你想要在设定图像质量时能有交互的反馈【另存为网页格式】其它情况【另存为】===============================================Photoshop Save AsThe Save As dialog includes a very large number of output file formats, as it is the standard method by which users will generate their final image files. As this output method is not optimized towards transmission over a low data-rate medium (such as the internet), additional information is encoded into the resulting image at the cost of increased file size. As shown below, this additional data may consume approximately 40KB.One of the main reason that photographers choose Save As instead of Save for Web when sharing photos is so that the EXIF metadata (which includes camera information and shot details) can be displayed to other interested viewers. Most photo sharing sites (such as pbase) automatically extract this EXIF information, for the benefit of other photographers. However, considering that it also includes the time and date of the original shot, it may have privacy implications.Photoshop 另存为另存为是用户输出最终图像文件的标准方式,因此对话框中有输出多种文件格式的选择。这种保存方式没有为低速数据传输方式(例如互联网)优化文件,保存的图像文件中包含了附加信息,因此文件体积较大。如后面所示,这些附加数据的体积可能接近40kb。摄影者通常选择另存为而不是另存为网页格式的一个主要的原因是,在分享照片时,观看者能够查看到图片的Exif信息(包括相机和拍摄信息)。大部分照片分享网站(例如pbase)都能自动提取Exif信息,以方便其它摄影者查看。尽管如此,Exif信息包含着照片拍摄的时间日期信息,所以可能涉及隐私。===============================================16-bit ModeAs Save As does not support for 16-bit images, it may be necessary to convert to 8-bit first, save and then undo the color depth conversion step if you plan to continue working on the file. You can convert to 8 bit RGB by selecting Image -& Mode -& 8-bits/channel. Save for Web automatically converts the color depth for you.
16位模式由于&另存为&不支持保存16位模式的图像,所以有必要先转换成8位模式,保存。如果你要继续处理图片的话,就撤销上一步颜色位深的设置。把图像转为8位RGB图像的方式是菜单上的图像-&模式-&8位/通道。另存为网页格式会自动为你转换颜色位深。===============================================Photoshop Save For WebThe Save For Web dialog box doesn't provide as much flexibility in the ouput image file formats as the Save As dialog, but it does offer more flexibility with each supported option. Supported output file formats include:&& & & &JPEG - Selection of Quality level (1-100). No transparency.&& & & &GIF - Different palette sizes (2-256) and dithering options define quality. Supports single-bit transparency.&& & & &PNG-8 - Reduced color depth (2-256 colors) and dithering options defines quality. Supports multi-bit transparency.&& & & &PNG-24 - &Lossless& 24-bit quality. Supports multi-bit transparency.&& & & &WBMP - Black & White dithered output.(附图见下面的中文版)Main window for Save for WebThe focus on this page will be on the JPEG output format.Photoshop另存为网页格式另存为网页格式没有像另存为那样提供很多中保存图像文件的格式选择,但是它为每种支持的格式提供了更灵活的设置。支持的格式包括:&& & & &Jpeg-可以设置图像保存质量(1-100%)。无透明度。&& & & &Gif-通过设置调色盘大小(2-256色)和颜色抖动来确定保存图片的质量。支持单色透明度。&& & & &Png-8-通过设置调色盘大小(2-256色)和颜色抖动来确定保存图片的质量。支持单色透明度。(原文中png-8透明度的说法貌似有误?)&& & & &Png-24-无损24位质量。支持透明度。&& & & &Wbmp-黑白抖动输出。&
&另存为网页格式的主窗口按上图中的设置将输出jpeg格式文件。===============================================Save For Web JPEG outputBecause the Save for Web command is intended to be used for images that are destined for display on the internet, one of the primary goals is in optimizing the file size as much as possible while still retaining acceptable image quality. To this end, two methods are used to achieve this: a) a live preview of changing JPEG compression quality sliders and b) the removal of all unnecessary metadata (JPEG markers) in the output file.The main features in Save for Web include:&& & & &Optimize to File Size: Ability to automatically select both the file format (JPEG or GIF) and JPEG compression level to achieve the selected file size.&& & & &Removal of EXIF metadata. For many this is a useful feature, while others will completely avoid Save for Web because of it. For simple images on a web site or for privacy reasons, you may want to hide the time/date a photo was taken, or other parameters. But, if you plan to share your images on a photo hosting site and would like to indicate the focal length, aperture and other parameters to your viewers, Save for Web will not be the right method.&& & & &Removal of Optional Markers. In most output JPEG files, special markers are used to indicate additional information or provide resiliency in the case of errors / corruption. The Save for Web method will remove these and still allow JPEG decoders to work.另存为网页格式之jpeg输出保存为网页格式目的是输出展示在网页上的图片,保存的主要的目的之一是在维持图片质量的同时尽可能地缩小文件体积。保存为网页格式使用了两种方法达到此目的:a) 在拖动滑动条更改jpeg质量设置时提供即时预览;b)移除输出文件中所有不必要的信息(jpeg标记)。另存为网页格式的主要特色有:&& & & &优化文件大小:可以自动选择文件格式(jpeg或gif)和选择jpeg的压缩率,以实现选定的文件大小。&& & & &移除Exif信息。很多时候这是一个有用的功能,而另一些人则会因为此功能而不使用另存为网页格式。对于简单的网页图片来说,或者出于保护隐私,你也许希望隐藏照片拍摄的时间日期以及其它参数。但是,如果你想要在网络相册中分享你的照片,并且希望观看者看到拍摄的焦距、光圈和其它参数,那么就不适合使用另存为网页格式了。&& & & &移除可选的标记。在大多数jpeg文件中,有一些记录附加信息、或是在出错/崩溃时用以恢复的特殊标记。另存为网页格式会在jpeg文件依然能被解码的前提下移除这些标记。===============================================ICC Color ProfilesBoth Save for Web and Save As give you the option of including the ICC Color Profile within the image. Color profiles are used to the viewer's display how the RGB values within the image data should map to real-world colors. Assuming you have a color-managed environment (calibrated and profiled monitor), this profile is used to display the colors as they were intended to be shown.Unfortunately, most web browsers don't read this profile and most people don't have calibrated monitors, so the default color space, sRGB is generally assumed. Therefore, if you are sharing your photos on the web, and your photos were shot in a color space such as Adobe RGB, it is strongly advised that you convert to sRGB first. Once you've done that, there is little need to include the ICC profile within the file.Comparison of JPEG MarkersThe differences between the output of the two JPEG compressed file saving methods is easily visible when comparing the JPEG (JFIF) files themselves. The JPEG (JFIF) file format specifies a number of mandatory markers as well as some optional ones. The chart below shows how Photoshop CS2 Save as and Photoshop CS2 Save for the Web compare at a low level, with the help of JPEGsnoop:ICC颜色配置:另存为网页格式和另存为都提供了是否嵌入ICC颜色配置的选项。颜色配置是用来让图片文件的RGB数值在用户显示器上显示出更真实的色彩。假设你有一个经过颜色管理的环境(校准和配置过的显示器)配置能让颜色显示更接近预期的效果。很不幸的是,大部分浏览器不支持颜色配置,并且大部分人没有校准过的显示器,所以默认假设是sRGB色彩空间。因此,如果你在网上分享照片,如果你的照片拍摄时使用的是其它色彩空间,例如Adobe RGB,那么强烈建议你转换为sRGB。如果你这样做的话,就基本不需要在文件中嵌入ICC颜色配置了。通过对比jpeg文件,两种jpeg压缩文件保存方式的区别是很容易识别的。jpeg(jfif)文件格式中列入了一些强制的标记和一些可选的标记。下面的表格是photoshop另存为和另存为网页格式的输出文件的对比。===============================================Comparison of JPEG Markers in PhotoshopSave As Save For Web DescriptionSOI   SOI    Start of Image markerAPP0  APP0    Identifier, Version, resolution, JFIF extensionsAPP1        EXIF data, Makernotes removed in both. (长度 5KB)APP13        Photoshop IRB (Photoshop-specific data, including quality)          (长度5KB)APP1        XML metadata (EXIF, IPTC, etc.) (长度17KB)APP2*  APP2*   ICC color profile (* optional) (长度3KB)     APP12   Ducky tag - Save for Web Quality - stores the quality level           (length 17B)APP14  APP14   Encoding info: color transform (e.g. YCbCr, YCCK, RGB, CMYK)           and whether or not the samples were blended (length 14B)DQT   DQT    Quantization TablesSOF0   SOF0   Baseline DCT, chroma subsamplingDRI         Restart Intervals - Adds a level of recovery in case of errors           (length is variable, depends on frequency)DHT   DHT    Huffman compression tablesSOS   SOS    Start of Scan: Image Data streamEOI    EOI    End of Image markerAs can be seen in the above table, the additional data stored within a Save As JPEG versus as Save for Web JPEG is typically in the order of ~ 40 KB. In most high-resolution photos, this extra is insignificant, but when trying to compress small images for web use, this overhead could be significant.Photoshop两种保存方式输出文件的jpeg标记对比另存为 另存为网页格式 说明SOI   SOI     图像开始标记APP0  APP0     识别标记、版本、分辨率、jfif扩展APP1         EXIF数据, 两种保存方式都移除了制作者注释(长度5KB)APP13         Photoshop IRB (Photoshop特有数据,包括质量) (长度5KB)APP1         XML数据(EXIF, IPTC等) (长度17KB)APP2*  APP2*    ICC颜色配置(*可选) (长度3KB)     APP12    Ducky标签-保存为网络格式质量-储存质量等级(长度17B)APP14  APP14    编码信息: 颜色转换 (例如YCbCr, YCCK, RGB, CMYK)            以及样本是否混合(长度14B)DQT   DQT     量化表SOF0   SOF0    基线DCT, 色度抽样DRI          重新开始间隔-加入出错时的复原标准(长度不定)DHT   DHT     Huffman压缩表SOS   SOS     扫描开始: 图像数据流EOI   EOI     图像结束标记如上表所示,另存为输出文件所包含的附加信息使文件比另存为网页格式多40kb。对于大部分高分辨率的图像文件来说,这部分数据并不明显,但如果想要压缩图像文件大小以供网页使用,那么这部分就很明显了。
Extraction of Quality Setting in Save AsIn files generated using Save As, you can derive the quality setting from the Photoshop IRB resource (0x0406) in the JPEG APP13 (0xFFED) marker. The following hex view is of an image saved with quality setting 2.(图见下)Value& & & &Quality0xFFFD& & & &Quality 1 (Low)0xFFFE& & & &Quality 20xFFFF& & & &Quality 30x0000& & & &Quality 40x0001& & & &Quality 5 (Medium)0x0002& & & &Quality 60x0003& & & &Quality 70x0004& & & &Quality 8 (High)0x0005& & & &Quality 90x0006& & & &Quality 10 (Maximum)0x0007& & & &Quality 110x0008& & & &Quality 12另存为的图像质量设置在用另存为方式输出的文件中,你能根据JPEG APP13 (0xFFED)标记中的photoshop IRB资源(0x0406)数据推得图片质量的设置值。下面是一副保存质量为2的图片文件的16进制视图。
数值& & & &质量0xFFFD& & & &质量1 (低)0xFFFE& & & &质量20xFFFF& & & &质量30x0000& & & &质量40x0001& & & &质量5 (中)0x0002& & & &质量60x0003& & & &质量70x0004& & & &质量8 (高)0x0005& & & &质量90x0006& & & &质量10 (最佳)0x0007& & & &质量110x0008& & & &质量12===============================================Extraction of Quality Setting in Save For WebIn files generated using Save For Web, you can derive the quality setting (1..100) from the Ducky resource in the JPEG APP12 (0xFFEC) marker (starts with null-terminated ASCII string Ducky). The percent value is stored in hex. The following hex view shows a file saved with quality setting 51 = 0x31:(图见下)另存为网页格式的质量设置在另存为网页格式的图片文件中,你能根据JPEG APP12 (0xFFEC)标记(以空数据开头、ASCII编码Ducky结束)中的Ducky资源推得图像质量设置(1-100%)数据是以16进制保存的。图中在0x31处,16进制数值33表示图片质量为51。&
&===============================================Comparison of Save As vs Save For Web QualityMany people are confused about why there is a difference in the definition of quality settings within Photoshop and furthermore, how they compare. The following table shows the two methods and the relative ordering of quality between the settings, from best to worst quality. See description below for the limitations of such an ordered comparison.For more information: read about JPEG chroma subsampling.Method   JPEG Quality Preset  Chroma SubsamplingSave For Web 100     Maximum 1x1Save As    12     Maximum  1x1Save For Web 90           1x1Save As    11           1x1Save For Web 80     Very High 1x1Save As    10           1x1Save For Web 70           1x1Save As    9            1x1Save For Web 60      High   1x1Save As    8      High   1x1Save For Web 51           1x1Save For Web 50           2x2Save As    6            2x2Save As    7            1x1Save As    5      Medium  2x2Save For Web 40           2x2Save As    4            2x2Save As    3      Low    2x2Save For Web 30     Medium  2x2Save As    2            2x2Save For Web 20           2x2Save As    1           2x2Save For Web 10     Low    2x2In graphical form, here is a chart that shows a comparison of the JPEG luminance and chrominance across the default presets, each with the equivalent JPEG standard &quality factor&. Of course, it is important to note that the quality factor shown is not an accurate measure of image quality since they are only truly comparable quantities if both Save for Web and Save As were based on linear scalings of the quantization tables included in the JPEG Standard Annex. Since neither is based on the sample tables, the quality factor should only be taken as a very rough comparison measure. The graph is ordered by decreasing luminance quality factors.(图见下)Ordered Graph(图见下)Comparison Graph另存为和另存为网页格式的比较很多人对为何photoshop中的两种保存方式质量设定的定义有区别而不解,还有怎么比较他们。下面的表格是两种保存方法设置质量后的图像质量排序,从最佳质量到最低质量。这种排序比较的局限性请看后面的说明。更多信息请查阅jpeg色度抽样。保存方法    JPEG质量  预设   色度抽样另存为网页格式 100    最佳    1x1另存为     12     最佳 & & & & 1x1另存为网页格式 90           1x1另存为     11           1x1另存为网页格式 80     较高    1x1另存为     10           1x1另存为网页格式 70           1x1另存为     9            1x1另存为网页格式 60     高     1x1另存为     8      高     1x1另存为网页格式 51           1x1另存为网页格式 50           2x2另存为     6            2x2另存为     7            1x1另存为     5      中     2x2另存为网页格式 40           2x2另存为     4            2x2另存为     3      低     2x2另存为网页格式 30      中    2x2另存为     2            2x2另存为网页格式 20           2x2另存为    1             2x2另存为网页格式 10      低     2x2下面是默认设置下的jpeg亮度和色度的对比图表,每个都有对应的jpeg标准质量系数。当然,有必要指出,质量系数不是测量图片质量的精确标准,只是如果另存为网页格式和另存为都是基于jpeg标准附录中的量化表的线性测量,那么质量系数是唯一能用来比较图片质量的参数。质量系数只能作为一个粗糙的标准来比较图片。图表按亮度质量系数降序排列。&
&排序图表&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved

我要回帖

更多关于 png和jpg格式的区别 的文章

 

随机推荐