Kullanıcı deneyimini iyileştirmek için aşamalı JPEG kullanın

Bugün JPEG dosyalarını kaydetmenin iki yolu olduğunu fark ettim: Temel JPEG (standart) ve Aşamalı JPEG (aşamalı). İki format aynı boyuta ve görüntü verilerine sahiptir ve uzantıları da aynıdır.Tek fark, görüntüleme şekilleridir.

Temel JPEG

Bu tür bir JPEG dosyası depolama yöntemi, yukarıdan aşağıya taramak ve her satırı JPEG dosyasına sırayla kaydetmektir. Bu dosyayı içeriğini görüntülemek için açarken, veriler, tüm veriler okunana ve resmin tamamı görüntülenene kadar, depolama sırasına göre yukarıdan aşağıya satır satır görüntülenecektir. Dosya büyükse veya ağ indirme hızı yavaşsa, resimlerin satır satır yüklendiği etkiyi göreceksiniz.Bu JPEG formatının hiçbir avantajı yoktur.Bu nedenle, genellikle Progressive JPEG önerilir.

Aşamalı JPEG

Baseline tek geçişli taramadan farklı olarak, Aşamalı JPEG dosyaları birden çok tarama içerir ve bu taramalar JPEG dosyasında sırayla saklanır. Dosyayı açma sürecinde ilk olarak tüm resmin bulanık anahatları görüntülenecektir Taramaların sayısı arttıkça resim daha net ve net hale gelir. Bu formatın ana avantajı, ağ yavaş olduğunda, görüntünün ne yüklendiğini bilmek için görüntünün ana hatlarını görebilmenizdir. Bazı web sitelerinde daha büyük resimler açarken bu tekniği fark edeceksiniz.

Aşamalı resimlerin avantajı, kullanıcıların resimleri indirmeden önce son görüntünün ana hatlarını görebilmesidir, bu da kullanıcı deneyimini bir dereceye kadar iyileştirebilir. (Şelale tarafından önerilen web sitesi hala standart tiptir)

Ek olarak, aşamalı resmin boyutu temel resim boyutundan çok farklı değildir ve bazen temel resimden daha küçük olabilir. Aşamalı resimlerin dezavantajı, kullanıcının CPU'sunu ve belleğini tüketmeleridir, ancak modern bilgisayarlar için bu resmin hesaplanması hiçbir şey değildir.

Bundan bahsettikten sonra, bunun yerine resimlerin nasıl Progressive JPEG'e kaydedileceği veya dönüştürüleceği hakkında konuşalım.

1. PhotoShop

Photoshop'ta "Web formatı olarak kaydet" vardır. Açtıktan sonra, aşamalı JPEG olmak için "Sürekli" yi seçin.

2. Linux

Aşamalı olup olmadığını kontrol edin jpeg: tanımla -verbose dosyaadı.jpg | grep Taramalı (Çıktı Yok ise, aşamalı jpeg değildir; Çıktı Düzlem ise, aşamalı jpeg'dir.)

Temel jpeg'i aşamalı jpeg'e dönüştürün: > infile.jpg dönüştürmek -interlace Plane outfile.jpg

3. PHP

İmageinterlace ve imagejpeg fonksiyonlarını kullanarak dönüştürme problemini kolayca çözebiliriz.

?

< ? php

$ im = imagecreatefromjpeg ('resim.jpg');

imageinterlace ($ im, 1);

imagejpeg ($ im, '. / php_interlaced.jpg', 100);

imagedestroy ($ im);

? >

4. Python

?

ithalat PIL

itibaren istisnalar ithalat IOError

img = PIL.Image.open ("c: \ users \ biaodianfu \ pictures \ in.jpg")

hedef = "c: \ users \ biaodianfu \ pictures \ test.jpeg"

Deneyin :

img.save (hedef, "JPEG", kalite = 80, optimize et = Doğru, ilerici = Doğru)

dışında IOError:

PIL.ImageFile.MAXBLOCK = img.size * img.size

img.save (hedef, "JPEG", kalite = 80, optimize et = Doğru, ilerici = Doğru)

5. jpegtran

jpegtran -copy yok -progresif < giriş dosyası > < çıktı dosyası >

6. C #

?

kullanma (Resim kaynağı = Image.FromFile (@ "D: \ temp \ test2.jpg")) {

ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders (). İlk (c = > c.MimeType == "resim / jpeg");

EncoderParameters parametreleri = yeni Kodlayıcı Parametreleri (3);

parameters.Param = yeni EncoderParameter (System.Drawing.Imaging.Encoder.Quality, 100L);

parameters.Param = yeni EncoderParameter (System.Drawing.Imaging.Encoder.ScanMethod, ( int ) EncoderValue.ScanMethodInterlaced);

parameters.Param = yeni EncoderParameter (System.Drawing.Imaging.Encoder.RenderMethod, ( int ) EncoderValue.RenderProgressive);

source.Save (@ "D: \ temp \ kaydedilmiş.jpg", kodek, parametreler);

}

Çinli markalar ortak girişimlerden sadece bir adım uzakta
önceki
Ejderha ve Kaplan Listesi: Joenun Çetesi ve Mutlu Sahil, Palm Okuma Teknolojisine girmek için el ele verdi ve organizasyon, Ashi Chuang'ın konumunu artırmaya devam ediyor
Sonraki
JEEP ön yüz artı BYD arka, 120.000 kilometre garanti, sadece 44.800 yuan!
Şiddetli savaş devam ediyor DNF oyuncuları on profesyonel takım ruhu tablosu yarattı
"Made in Japan" dolandırıcılığının "kaçınılmazlığının" ekonomik ve kültürel açıdan analizi
W211, on yıldan daha uzun bir süre önce, bugün hala cazibesine sahip
Arsa tersine döndü! Zayıf arz ve talep, çelik Jedi'nin toparlanmasına neden oldu ve bu stoklar hareket etmek üzere
Double Eleven Chop El Kılavuzu
Youth Hostel Shenwu 2 ile tanışıyor Guo Jinqi'nin aynı zamanda bir Shenwu 2 oyuncusu olduğu ortaya çıktı.
Küçük bir arabada kontrolün kralı olan yeni model yakışıklı ve zinde ve aylık 4000 maaşla rahatlıkla yapılabiliyor.
Tutku bir süre yansın! Onuncu nesil Subaru STi
Uzun Kaplan Listesi: Chengquan Capital ve ortak ajansı Bayi Steel'i satın aldı; Kardeş Zhao oyundan çıktı
Hatchback'in çıkış yolu böyle kırılmalı
İkinci el otomobil satıcılarının en çok korktuğu marka yenilendi.Yeni SUV süper yakışıklı görünüyor ve Peugeot motorları kullanıyor!
To Top