图片问题的一些总结
前言: 之前个人对于图片的问题,一直还是显得不是很重视。但其实对于互联网来说,可能图片的内容已经占据了整个互联网的大半部分,因此我们很大一部分流量的消耗,都是用在了图片上面,因此,对于图片有一些认识肯定是现在所必须的。所以趁今天这个不太忙的机会,打算对于图片的问题做一个简单地总结,也算是对之前没掌握到的东西的一个学习与备忘过程。
常见的图片格式
JPG | 有损 | 不支持 | 所有 |
PNG | 无损 | 不支持 | 所有 |
GIF | 无损 | 支持 | 所有 |
APNG | 无损 | 支持 | firefox、safari |
WebP | 有损/无损 | 支持 | chrome、opera |
APNG,作为想取代gif的新格式,他比我们常用的gif更为优秀。从其名称中可以看出,APNG其实可以说是会动png,因为png支持24位的颜色,而gif最多仅支持8位的颜色,因此,APNG的显示效果比gif更为清晰。可惜APNG并没有加入png标准,因此我们日常生产中很难将其纳入使用。
WebP,是由谷歌推出的图片格式,想让其作为web中专用的图片格式。与jpg作对比,WebP有对透明的支持,以及完全不亚于JPG的压缩率。而与PNG对比,WebP更小,加载更快。不过可惜的是,其兼容性也是不太友好。
上面两种格式,因为使用不太多,因此仅仅提及一下。下面将对我们常用的JPG,PNG,以及GIF来做讨论。
JPG
由于jpg的压缩方式为有损,而我们之前有提及到,图片所消耗的流量已经占据了互联网的半壁江山,因此,jpg自然就成为了web开发中的宠儿。对于图片中,没有透明效果的,以及图片更为颜色丰富的图片,我们多可以采用压缩60%-80%的jpg图像。这样可以保证使得图片更小,网页加载更快。不过需要注意的是jpg的每一次压缩,对图片都是有损的。因此,对于一些有线条,或者文字的图片,jpg压缩之后,看起来并不理想,因此,在这种情况下,应该尽量避免对jpg的使用
GIF
GIF仅有256种颜色,并且对透明对支持仅仅局限于全透明或者不透明,因此,gif若作为非动图来说,只能用于颜色不太复杂的图片。不过一般来说,我们用gif都是由于其对动画的友好支持,在APNG兼容性十分不友好的情况下,如果仅仅想引入一个动图的话,gif是目前很好的选择。
PNG
格式
png8 | 8 | 不支持 |
png8+索引透明 | 8 | 仅支持完全透明 |
png8+alpha透明 | 8 | 支持 |
png24 | 24 | 不支持 |
png32 | 32 | 支持 |
png的格式可以分为以上几种,而我们常用的便是png8与png32了(即是我们常在ps中导出的png24)
透明
png32
我们在ps中导出的png24勾上透明选项后,即是这里所说的png32了,而png32实际上是指的png24位的深度,以及8位的alpha透明通道。因为png32颜色的丰富性(2^24种颜色),以及对各种透明的友好支持。png32是我们许多人最常用的格式之一。其导出方法也很简单,只用在ps中选择导出为web所用格式,选中png24+透明即可。然而png32在ie6上并不能表现为透明
png24
其实png24本身是不透明的,因为其并没有那8位的alpha通道。在fireworks中我们可以很好地看到这一特点
图中下面为png32,上面为png24
png8
png8由于仅有2^8种颜色,因此体积较小,同时,他还对透明有比较友好的支持,因此,png8也是很多人喜欢使用的图片格式。
png8+alpha透明
png8的alpha透明,由于不能够使用ps来进行导出,因此我们需要使用fireworks来导出。这次,我选择了一张黑色的透明背景来对透明的支持做一次比对
图中下为png32,上为png8+alpha透明
可以看出,png8对于半透明,有不错的支持性。同时,因为其比较小的体积。在现代浏览器上,对于颜色不太复杂的小按钮之类的的东西,以及对于图片的要求并没有那么高的移动端端来说png+alpha透明也是显得十分友好的。当然,对于颜色较为复杂,以及要求较为严格的pc端上需要采用的东西,我认为还是应该采用png32的好。不过alpha透明的png8在ie6上的表现并不如人意,在ie6上,其半透明处会以全透明来显示,并且毛边严重。之前也提及到了,png8的alpha透明对于半透明,只是有不错的支持性,其真正的表现事实上还是不如png32。在我测试过程中发现,png8采用alpha透明,依然会出现一些毛边
比对可以发现,上面png8+alpha透明的图片比起下面png32的图片还是多了一些锯齿。不过整体影响不算太大。
png8+索引透明
png8的索引透明终于可以用ps来进行导出了,导出方式也很简单。导出的时候直接选择ps的png8或者ps预设的png-8 128仿色。此时我们就可以导出索引透明的png8了。如下图
从上面的图可以看到,我们将导出图片,四周部分变为了白色(当然,你一打开看到的也可能是没有白边的)。这个时候,把图片右边那个杂边改为无,就可以去掉图片的白边。如下
左边的png32的图与右边png8的图对比可以看出,右边的图明显有一些锯齿。原因是索引透明对于透明的支持并不完善,其仅仅支持全透明以及全不透明,而不支持半透明。当选择了杂边为无的时候,所有的半透明转换为了不透明,也就产生了锯齿。那如何解决这些锯齿呢?
刚刚将四周白色,变为无的杂边的选项,其实就是ps对于锯齿的一个解决方法。如果这张图的需求是在纯色的背景下的话,我们可以将杂边,改为该图在网页中所在的背景的颜色,以做到在视觉上的一种无锯齿的感觉。这种方案在ie6下也可以很好地实现,不过也有他的局限性??倘若背景颜色比较复杂,那么这种方案将会无效。
###图片的选择
那么就总体来说下图片格式的选择应用场景吧(虽然上面多少都有些提到了)
关于jpg
由于其可压缩的特点,对于背景颜色较为复杂(比如照片等图)并且没有透明的图片,建议采用jpg。这样在保证了图片肉眼几乎看不出很大区别的情况下,把图片压得更小,压缩更快。不过对于有线条及文字的内容,不推荐用jpg。
关于gif
如果需要动图的话,由于APNG对兼容性对不友好gif依然还是首选。
关于png
结束时的话
……恩,对于图片的总结应该是还没有结束的。这里就只能写到这么多了。还有关于体积更小,效果更好的WebP,以及对于这种图片方案与前端自动化工具的结合还没有纳入实践……嗯,搞不好哪天懒癌治好了就继续写了。

HTML 코드는 온라인 유효성 검사기, 통합 도구 및 자동화 된 프로세스를 통해 깨끗할 수 있습니다. 1) w3cmarkupvalidationservice를 사용하여 온라인으로 HTML 코드를 확인하십시오. 2) 실시간 확인을 위해 VisualStudioCode에 HTMLHINT 확장을 설치하고 구성하십시오. 3) htmltidy를 사용하여 시공 프로세스에서 HTML 파일을 자동으로 확인하고 청소하십시오.

HTML, CSS 및 JavaScript는 최신 웹 페이지를 구축하기위한 핵심 기술입니다. 1. HTML 웹 페이지 구조를 정의합니다. 2. CSS는 웹 페이지의 모양을 담당합니다.

HTML의 기능은 웹 페이지의 구조와 내용을 정의하는 것이며, 그 목적은 정보를 표시하는 표준화 된 방법을 제공하는 것입니다. 1) HTML은 타이틀 및 단락과 같은 태그 및 속성을 통해 웹 페이지의 다양한 부분을 구성합니다. 2) 콘텐츠 및 성능 분리를 지원하고 유지 보수 효율성을 향상시킵니다. 3) HTML은 확장 가능하므로 사용자 정의 태그가 SEO를 향상시킬 수 있습니다.

HTML의 미래 트렌드는 의미론 및 웹 구성 요소이며 CSS의 미래 트렌드는 CSS-In-JS 및 CSShoudini이며, JavaScript의 미래 트렌드는 WebAssembly 및 서버리스입니다. 1. HTML 시맨틱은 접근성과 SEO 효과를 향상시키고 웹 구성 요소는 개발 효율성을 향상 시키지만 브라우저 호환성에주의를 기울여야합니다. 2. CSS-in-JS는 스타일 관리 유연성을 향상 시키지만 파일 크기를 증가시킬 수 있습니다. CSShoudini는 CSS 렌더링의 직접 작동을 허용합니다. 3. Webosembly는 브라우저 애플리케이션 성능을 최적화하지만 가파른 학습 곡선을 가지고 있으며 서버리스는 개발을 단순화하지만 콜드 스타트 문제의 최적화가 필요합니다.

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 정의하고, 2. CSS는 웹 페이지 스타일을 제어하고 3. JavaScript는 동적 동작을 추가합니다. 그들은 함께 현대 웹 사이트의 프레임 워크, 미학 및 상호 작용을 구축합니다.

HTML의 미래는 무한한 가능성으로 가득합니다. 1) 새로운 기능과 표준에는 더 많은 의미 론적 태그와 WebComponents의 인기가 포함됩니다. 2) 웹 디자인 트렌드는 반응적이고 접근 가능한 디자인을 향해 계속 발전 할 것입니다. 3) 성능 최적화는 반응 형 이미지 로딩 및 게으른로드 기술을 통해 사용자 경험을 향상시킬 것입니다.

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. HTML은 컨텐츠 구조를 담당하고 CSS는 스타일을 담당하며 JavaScript는 동적 동작을 담당합니다. 1. HTML은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의하여 의미를 보장합니다. 2. CSS는 선택기와 속성을 통해 웹 페이지 스타일을 제어하여 아름답고 읽기 쉽게 만듭니다. 3. JavaScript는 스크립트를 통해 웹 페이지 동작을 제어하여 동적 및 대화식 기능을 달성합니다.

Htmlisnotaprogramminglanguage; itisamarkuplanguage.1) htmlstructuresandformatswebcontentusingtags.2) itworksporstylingandjavaScriptOfforIncincivity, WebDevelopment 향상.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
