From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#59242: 29.0.50; Poor quality for WebP images Date: Sun, 13 Nov 2022 17:44:22 +0800 Message-ID: <877czzkx3d.fsf@yahoo.com> References: Reply-To: Po Lu Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15523"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 59242@debbugs.gnu.org, Stefan Kangas To: Evgeny Zajcev Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 13 10:45:23 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ou9YJ-0003of-6Q for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 13 Nov 2022 10:45:23 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ou9Y1-0006xN-EA; Sun, 13 Nov 2022 04:45:05 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ou9Xy-0006x1-VR for bug-gnu-emacs@gnu.org; Sun, 13 Nov 2022 04:45:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ou9Xy-0001CP-Ma for bug-gnu-emacs@gnu.org; Sun, 13 Nov 2022 04:45:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ou9Xy-0004Vh-3G for bug-gnu-emacs@gnu.org; Sun, 13 Nov 2022 04:45:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 Nov 2022 09:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59242 X-GNU-PR-Package: emacs Original-Received: via spool by 59242-submit@debbugs.gnu.org id=B59242.166833268317297 (code B ref 59242); Sun, 13 Nov 2022 09:45:02 +0000 Original-Received: (at 59242) by debbugs.gnu.org; 13 Nov 2022 09:44:43 +0000 Original-Received: from localhost ([127.0.0.1]:50095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ou9Xe-0004Uv-Sh for submit@debbugs.gnu.org; Sun, 13 Nov 2022 04:44:43 -0500 Original-Received: from sonic316-22.consmr.mail.ne1.yahoo.com ([66.163.187.148]:38876) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ou9Xb-0004Uf-Vs for 59242@debbugs.gnu.org; Sun, 13 Nov 2022 04:44:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1668332671; bh=jnALI+n2ReA0DECShEEvS7wBZ0Tx60+InyMkq9QKVsk=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=nND7yp9/+7W2PHqZg3mUJVysWYPcG+mJJ8mz4xIR76zF0hr28uyKrJKMP6jcCsj8HQLDORSIAi+91kSgLKsKBgAf/j7vPV4pTJlx153xyAYt679bnMw7DdmEhMxDCnTPkW10HJE0jT/cmk+/TgfosiXDKs62lTioZq6g2AOe6IlI5i7s2z+hGPJM59CWIvqbwn957Hyywts6QYDP2FqE1JKNmnFvd3ro2p0uIWOk7nz+xod3L0qb6hAJKKS2iEX7sEOwucv/fWb5smwsF8ndBnfUMslgzK/E2ZK35mhUcnuuFFHgbNNUQnuFnwDl83ODvGU1UIxtp37yCQbiCj2F/Q== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1668332671; bh=Lj0gL8EdwW2MUaIIcFzdvQvziQTeBDEG2EVHKvpMQeT=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=TavUqmNCxyUzW8KM7OZPlNT2nSrttYP4gS4rauXxrLVYx7+jLxhSONki/TGSx23gHcncwXtmBkUgmIY4bSRHPfEda2+coaOOJejL6n7sTz/8ImRzGaPEg+GxlH1J2DdMKM+IjFJpFzMy6bXBqZ/fFFVVYHvSTzVxGMjc9vhjjHIpAZwBKxvDPNTGh4nFmPxjfvAUQMGRsdpP/nstBORZMB1VDW5S8lwD7cfXumsCEgeUgq+UAlmbeIcAl1WHnj59/6JnoYPLxwtOXYfsDCc8fLpERaVWGCo7JRp2cNaeKa6n8DVyqGACO+rkHO+p9JkyDVfrWW3Q6tA0xs30LtEmZQ== X-YMail-OSG: KjKSrdIVM1mhTf5eO.u9lgUPnQIQYSAiEJtxpvUyCRKOphmdF_EFDOje4eHFGDY X8AfFwVPChHMP6VYvxTjQMRlHN8oJghymm4jjRz7qyMrc70UaN4a4hHYJYHEldQUKiGda297ER87 LL6ikJZMI9iyRIGdO6iWw0yMGFJFb52DGrU4bdz9JgcGup.Uqpya8mAuuYsqcfiyIIZD_A1nU.Bg rTu5t6B7B.e1uA7kt.aV3Zrge9L.5xI.8PGkdKxl.GOxnaKFRAPReeP_qO584oXYHC3Ka2SnQoJ5 9hmDq2vAqiJhUuU22kd_8dg6XDTfXZ8B_abAlwLnV3kGN1JZ6SK9y3HpdDqNbv.qfu7tFhAjFor. uRqvRzQffAb8TrQx_zTLPwMNQjOMRiPuQQtz_rS4rfzhgz3Q2CK_HGAjRA5Vk5byD6GHqeg.If2F Sdm7IKYN_tSpMY3LUr_GkOYmUdQ7xf049.yrA2OoCMHKfJFKWGxjxMXb6q.3IZFuU5.I73HOVwt. sJmgRlWpOa6U2zWelnyx0qIw.z6tZNHnI490pjdTRW3IPW0B5hw5FxXzkyaAggGtnsI1lo_RzkoO BtarjnkYiY7DTs3d_ReSbDqQtjLxVPvajQ526V7SD88DCkq0qN6OIFmO9rjij1gfhRVH.CRYVjW1 LXUoV1vH4QUmD5mlyDtdoXCHUS1XW0rdK7AO1H6k8rOGTQeSGsCZ35kGbw0RA_Gi7.Hxei79OKA3 TNkrptHn3.vXLkUUGaVDPURbyAvWmJvD6r14ZMdFIcoou8ChqprTbtfYGgi.xg2H.DQCahjXiyxu MgSmeHsngQy9HmEG2tiarTQzFtb6lKKAAnDs9vI4yH X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.ne1.yahoo.com with HTTP; Sun, 13 Nov 2022 09:44:31 +0000 Original-Received: by hermes--production-sg3-6c8895b545-mvhb5 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID dc776e20ada4b8ff6415157df1b6948d; Sun, 13 Nov 2022 09:44:29 +0000 (UTC) In-Reply-To: (Evgeny Zajcev's message of "Sun, 13 Nov 2022 11:48:01 +0300") X-Mailer: WebService/1.1.20826 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:247760 Archived-At: Evgeny Zajcev writes: > WebP images with alpha channel renders in poor quality in the Emacs. > See http://lgarc.narod.ru/pics/emacs-webp-poor-quality.png > > If I convert webp image to png, quality is ok in resulting image. > Also, if I add webp as native image under MacOS (requires Emacs patch) > then quality is also ok. > > Looks like partial transparency is incorrectly applied for webp images. Stefan, I see the following code in image.c: /* An alpha channel associates variable transparency with an image. WebP allows up to 256 levels of partial transparency. We handle this like with PNG (which see), using the frame's background color to combine the image with. */ if (features.has_alpha || anim) { if (mask_img) PUT_PIXEL (mask_img, x, y, *p > 0 ? PIX_MASK_DRAW : PIX_MASK_RETAIN); however, you seem to have misunderstood the meaning of the PNG code: PNG images can either have a real alpha channel (where the PNG library does the blending AFAIK) or a simple on-off transparency switch, which is the only case where this kind of masking is appropriate. As a questionable optimization, Emacs also uses masking when only alpha channels of 0 or 255 are present in a PNG image that has a real alpha channel. So if the webp library does not blend itself, I think we will have to do that for it. Am I missing anything here?