Menghentikan sumber indeks mengubah ikon tab menjadi kotak hitam

FixConversionService
Dikirim
6 September 2026 pukul 04.30 UTC
Penulis
Kamo
Commit
3f4c60b

Sebuah ikon tab diunggah sebagai PNG-8 transparan tiba dalam tab peramban sebagai hitam persegi dengan logo compang-camping di atasnya. Diukur pada upload yang terkena itu: dari 9216 piksel dalam favicon - 96x96.png, 5194 yang transparan keluar buram Hitam, dan tanda yang selamat turun dari 237 warna yang berbeda menjadi 46. Transparansi itu utuh sampai dengan langkah skala. ImageIO mendekode sebuah indeks PNG ke TIPE _ BYTE _ INDEXED dengan sebuah Model IndexColor yang transparansi adalah satu palet masukan - pixel (0,0) dibaca 0047704C, alpha nol, benar. Thumnailator mempertahankan gambar dari sumber TYPE ketika skalanya, sehingga ia membuat sebuah indeks baru gambar dengan palet DEFAULT: masukan alpha hilang, indices yang bertahan hidup warna yang dialamatkan yang tidak lagi berarti apa-apa, dan (0,0) kembali FF000000. kanvas fitSquare adalah ARGB sepanjang dan setia disalin piksel yang Sudah hitam - itulah sebabnya bug terlihat seperti itu tinggal di sana dan tidak. asterise now normalises to TIPE _ INT _ ARGB before anything else touches the image. Mengkonversi sekali dimana sumber dihasilkan, daripada melewati .imageType () di masing-masing dari tujuh situs panggilan, membuat "segala sesuatu masa lalu titik ini adalah ARGB" tunggu konsumen ditambahkan kemudian, dan biaya satu salinan bukan tujuh. Tidak baru, dan tidak hanya PNG-8: GIF selalu diindeks, sehingga org manapun yang img / logo. svg benar-benar GIF telah memiliki favicon hitam selama jalur raster telah Ada. Ini pergi tanpa diketahui karena satu-satunya sumber orang makan itu adalah SVG, yang Batik tangan kembali sebagai ARGB. Ini menjadi dapat dicapai dengan sengaja ketika tab ikon mulai menerima upload raster - PNG-8 adalah apa yang "simpan untuk web" memberi Anda untuk sebuah ikon kecil berwarna datar. Empat tes regresi menutupinya: PNG, rangka .ico (yang ditinggalkan oleh jalan yang berbeda, dikemas oleh IcoEncoder), GIF, dan satu menegaskan tanda menjaga nya warna sendiri daripada hanya transparansi nya. Setiap tes yang ada di kelas ini fed TIPE _ INT _ ARGB, satu bentuk masukan yang tidak pernah memiliki masalah. Diverifikasi terhadap berkas yang diunggah: 5185 / 9216 piksel transparan, cocok Sumber proporsi, dan 237 warna yang berbeda di mana ada 46. Organisasi dengan ikon tab telah dihasilkan memerlukan penyediaan ulang untuk memilih new bytes up; the theme revisi changes with it, so browsers will revalidate.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.

Mulai Bebas SelamanyaTampilkan Harga