GNU bug report logs -
#69992
Minor improvement to image map transformation logic
Previous Next
Reported by: Joseph Turner <joseph <at> ushin.org>
Date: Mon, 25 Mar 2024 01:03:01 UTC
Severity: normal
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On 30/03/2024 09:55, David Ponce wrote:
> On 30/03/2024 09:10, Eli Zaretskii wrote:
>>> Date: Fri, 29 Mar 2024 11:19:11 +0100
>>> From: David Ponce <da_vid <at> orange.fr>
>>> Cc: Eli Zaretskii <eliz <at> gnu.org>, Joseph Turner <joseph <at> breatheoutbreathe.in>
>>>
>>>> The attached new patch fixes the logic to be consistent with Emacs
>>>> internal implementation, plus some other tweaks to check if a
>>>> transformation apply before to call the transformation function.
>>>> I also updated some tests according to functions changes.
>>>> Here is a possible change log:
>>>>
>>>> 2024-03-28 David Ponce <da_vid <at> orange.fr>
>>>>
>>>> * lisp/image.el (image--compute-scaling)
>>>> (image--compute-rotation): New functions.
>>>> (image--compute-map, image--compute-original-map): Use them.
>>>> Ensure all transformations are applied or undone according to what
>>>> Emacs does internally. Call a transformation function only when
>>>> needed. Fix doc string.
>>>> (image--scale-map): Assume effective scale argument.
>>>> (image--rotate-map): Assume effective rotation argument.
>>>> (image--rotate-coord): Improve doc string.
>>>> (image--flip-map): Remove no more used flip argument.
>>>>
>>>> * test/lisp/image-tests.el (image-create-image-with-map): Use a
>>>> valid SVG image otherwise `image-size' will not return a valid
>>>> value and calculation of scale could fail.
>>>> (image-transform-map): Update according to changed signature of
>>>> image--flip-map.
>>> [...]
>>>
>>> Hello,
>>>
>>> Please find attached a new patch with an additional small fix I forgot to
>>> include. Sorry.
>>
>> Thanks. Please resend with the updated commit log message, and I will
>> install it.
>
> Hello Eli,
>
> The change log is the same. The last patch include a slightly modified
> version of the new function `image--compute-rotation' to return 0 by default
> when no rotation is specified, instead of nil.
>
> Please let me know if you need anything else.
> Thanks!
Hello,
Here is my last patch. The only change compared to the previous patch is that
now the scale factor is correctly calculated based on the size of the image and
the displayed size. To minimize the performance impact, I saved a call to
`image-size' by doing the calculation directly in the `image--compute-map' and
`image--compute-original-map' functions. I did some benchmarks and the
difference is not significant. The tests still give the same results :-)
Here is the new change log:
2024-03-30 David Ponce <da_vid <at> orange.fr>
* lisp/image.el (image--compute-rotation): New function.
(image--compute-map, image--compute-original-map): Use it.
Ensure all transformations are applied or undone according to what
Emacs does internally. Call a transformation function only when
needed. Fix doc string.
(image--scale-map): Assume effective scale argument.
(image--rotate-map): Assume effective rotation argument.
(image--rotate-coord): Improve doc string.
(image--flip-map): Remove no more used flip argument.
* test/lisp/image-tests.el (image-create-image-with-map): Use a
valid SVG image otherwise `image-size' will not return a valid
value and calculation of scale could fail.
(image-transform-map): Update according to changed signature of
image--flip-map.
Thanks!
[image-compute-map-V2.patch (text/x-patch, attachment)]
This bug report was last modified 1 year and 56 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.