Saat ini saya sedang berhadapan dengan masalah kualitas gambar untuk gambar latar belakang situs web saya.
Saya memiliki gambar latar belakang buram yang besar yang ingin saya gunakan tetapi ingin ukurannya sekecil mungkin untuk situs web.
Untuk memilikinya dalam kualitas tertinggi (png), sekitar 200kb.
Saya bisa turun ke sekitar 100kb sebagai JPG tetapi kualitasnya berkurang yang diharapkan tetapi ada garis-garis tampak mengerikan di sekitar linier yang membuatnya tampak mengerikan.
Apakah ada cara khusus untuk mengubah png ini menjadi jpg tetapi menjaga gambar agar tidak memiliki cacat ini?
Berikut gambar-gambarnya:
PNG:
Kualitas JPG (100%):
.SVG
? karena mereka kecilJawaban:
JPEG bukan kompresi lossless
Kompresi JPEG dianggap kompresi lossy bahkan ketika diatur pada kualitas 100% Anda kehilangan beberapa kualitas. Itu sebabnya untuk grafik sederhana seperti antarmuka UI dan latar belakang umumnya lebih baik menggunakan format lossless seperti PNG.
200kb tidak terlalu besar di 2014/2015
Meskipun ada ide untuk mengurangi ukuran latar belakang sebanyak mungkin, penting untuk dicatat bahwa 200kb tidak terlalu besar untuk sebagian besar koneksi broadband. Anda dapat menyajikan versi yang berbeda untuk ponsel dan tablet menggunakan kueri media css .
Membuat file png lebih kecil
Photoshop dan paket cat lainnya menggunakan kompresi PNG standar, Anda mungkin harus mengurangi 200kb itu menjadi lebih sedikit menggunakan PngOptimizer atau Yahoo's Online Service Smush It . Mengurangi ukuran file bahkan lebih rendah tidak akan menurunkan kualitas sebagai format lossless ... itu pada dasarnya mengoptimalkan kode mengurangi lebih lanjut, membandingkannya dengan file ZIP atau RAR, file kompres ini tetapi tidak mengurangi kualitas konten.
Mempertimbangkan menggunakan gradien garis
Solusi lain yang mungkin bisa Anda gunakan adalah gradien PNG tipis yang 1px melintang dan kemudian tinggi halaman, Anda kemudian menduplikasi ini menggunakan
background-repeat
, Anda bahkan dapat mempertimbangkan menggunakan CSS untuk menghasilkan Gradien untuk Anda, tetapi tentu saja Anda dibatasi oleh tidak bisa menggunakan bayangan dan tweak lainnya.sumber
pngcrush
dan program serupa tentu saja dapat membuat file lebih kecil.Ini mungkin tidak menjawab pertanyaan Anda. Beberapa alternatif yang mungkin ...
Sudahkah Anda mempertimbangkan CSS sebagai gantinya:
Atau mungkin Anda bisa menggunakan teknik SVG base64 ( alat generator di sini ):
Sudahkah Anda mencoba menggunakan PNG yang lebih kecil dan memungkinkan algoritme peningkatan skala asli browser untuk memperbesarnya? Ini mungkin menurunkan ukuran file serta menghilangkan artefak JPG.
sumber
Saya sarankan Anda memeriksa Kraken.io , mereka memiliki pengoptimal gambar. Gambar dalam topik Anda ukurannya berkurang 45%, tanpa terlihat oleh mata!
Anda juga bisa menggunakan css, colorzilla memiliki alat yang bagus untuk membuat css yang tepat untuk semua browser.
Jika Anda merasa lebih nyaman dengan gambar gradien, letakkan warnanya, buatlah hitam dan putih, lalu berikan latar belakang div / body / elemen seperti:
sumber
Beberapa editor gambar seperti GIMP memungkinkan Anda menerapkan perataan serta mengontrol kompresi saat menyimpan jpeg.
http://en.wikibooks.org/wiki/GIMP/Saving_as_JPEG
Anda juga dapat mengurangi artefak dengan mengontrol subsampling
http://www.ampsoft.net/webdesign-l/jpeg-compression.html
sumber
Cobalah untuk menambahkan noise untuk meminimalkan banding:
Photoshop:
Image > Fill... >
dan gunakan nilai-nilai ini:Filter > Noise > Add Noise... >
. Nilai-nilai ini bekerja dengan baik untuk saya:Jadi tidak ada bandeng jahat, ukuran lebih kecil tetapi dengan mengorbankan kebisingan. File jauh lebih berat dibandingkan dengan versi yang tidak berisik (sekitar 100 kb), tetapi setengah dari PNG asli. Sebenarnya saya agak terkejut PNG Anda sebesar ini.
Satu saran lagi:
Jika Anda tidak ingin menambahkan noise, coba pastikan Anda bekerja di mana-mana dalam ruang warna sRGB, yang menyediakan gamut terkaya untuk layar monitor (kurang banding).
sumber