From @|mon@urb@nek @end|ng |rom R-project@org  Fri Jun 12 03:14:53 2020
From: @|mon@urb@nek @end|ng |rom R-project@org (Simon Urbanek)
Date: Fri, 12 Jun 2020 13:14:53 +1200
Subject: [Rd] 
 tcltk image reading problem (on a mac?): [tcl] encountered an
 unsupported criticial chunk type "eXIf"
In-Reply-To: <AE3CE86B-5591-4794-8687-3CFC9E1F97EB@R-project.org>
References: <FEAE9DA5-8206-4025-BA52-790717E27455@contoso.com>
 <274D88FD-B4E7-40E4-9814-24C5B70F858D@gmail.com>
 <22794_1591915402_05BMhLe6010602_BN8PR05MB6321E2E5C596C22180D6E1C7FC800@BN8PR05MB6321.namprd05.prod.outlook.com>
 <E574B396-3A22-4749-89DA-9027389AC78F@mcmaster.ca>
 <41413BD1-966E-4454-B674-AB58EC4786C0@uwaterloo.ca>
 <AE3CE86B-5591-4794-8687-3CFC9E1F97EB@R-project.org>
Message-ID: <0CDB610D-4D4C-4117-A69A-1A3072A637BA@R-project.org>

Some googling suggests that this is an issue in tcltk which doesn't support png files with Exif tags. Are you sure this ever worked? This doesn't seem to be related to the macOS version since it's a feature tcltk, not the system.

I had no issue using the png package, so you could simply remove any offending chunks with

writePNG("test.png",readPNG("exIf.png", TRUE,TRUE))

then the output work with tcltk.

Cheers,
Simon


> On 12/06/2020, at 1:00 PM, Simon Urbanek <simon.urbanek at r-project.org> wrote:
> 
> Wayne,
> 
> that one is unrelated, but interesting - you can fix it with 
> 
> sudo install_name_tool -change \
>  /usr/local/lib:/opt/X11/lib/libtk8.6.dylib \
>  /usr/local/lib/libtk8.6.dylib \
>  /usr/local/bin/wish8.6 
> 
> There is a bug in tcltk with IDs on the libraries which I have worked-around for R, but not for wish.
> 
> Back to the original question - do you have any example of a file that doesn't work so I could test? Exif chunks are fairly rare in PNG and are a more late extension so I couldn't find any examples.
> 
> Thanks,
> Simon
> 
> 
>> On 12/06/2020, at 12:24 PM, Wayne Oldford <rwoldford at uwaterloo.ca> wrote:
>> 
>> I don't know what has changed with Catalina
>> 
>> But I just tried my tk console from the shell command tkcon 
>> And got the following error. 
>> Here is my shell:
>> 
>> $ tkcon 
>> 
>> dyld: Library not loaded: /usr/local/lib:/opt/X11/lib/libtk8.6.dylib
>>     Referenced from: /usr/local/bin/wish
>>     Reason: image not found
>>   Abort trap: 6
>> 
>> 
>> I don't know whether this is a red herring or not, but the 
>> Console fails to boot.
>> 
>> John does it work for you?
>> 
>> Not sure whether Python has the same trouble.  Kind of old info at https://www.python.org/download/mac/tcltk/ 
>> 
>> 
>> 
>> 
>> ?-----Original Message-----
>> From: "Fox, John" <jfox at mcmaster.ca>
>> Date: Thursday, June 11, 2020 at 7:54 PM
>> To: Wayne Oldford <rwoldford at uwaterloo.ca>
>> Cc: Peter Dalgaard <pdalgd at gmail.com>, "r-devel at r-project.org" <r-devel at r-project.org>
>> Subject: Re: [Rd]  tcltk image reading problem (on a mac?): [tcl] encountered an unsupported criticial chunk type "eXIf"
>> 
>>   Dear Wayne and Peter,
>> 
>>   FWIW, I observe exactly the same problem in Catalina. The error and my session info:
>> 
>>   -------- snip --------
>> 
>>> tkimage.create("photo", file = fname)
>>   Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") : 
>>     [tcl] encountered an unsupported criticial chunk type "eXIf".
>> 
>>> sessionInfo()
>>   R version 4.0.0 (2020-04-24)
>>   Platform: x86_64-apple-darwin17.0 (64-bit)
>>   Running under: macOS Catalina 10.15.5
>> 
>>   Matrix products: default
>>   BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
>>   LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
>> 
>>   locale:
>>   [1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8
>> 
>>   attached base packages:
>>   [1] tcltk     stats     graphics  grDevices utils     datasets  methods   base     
>> 
>>   loaded via a namespace (and not attached):
>>   [1] compiler_4.0.0 tools_4.0.0   
>> 
>>   -------- snip --------
>> 
>>   This is from RStudio but I see the same thing in the R.app.
>> 
>>   I hope this is of some help,
>>    John
>> 
>>    -----------------------------
>>     John Fox, Professor Emeritus
>>     McMaster University
>>     Hamilton, Ontario, Canada
>>     Web: http::/socserv.mcmaster.ca/jfox
>> 
>>> On Jun 11, 2020, at 6:43 PM, Wayne Oldford <rwoldford at uwaterloo.ca> wrote:
>>> 
>>> Yes.
>>> I seem to be picking up
>>> <Tcl>  8.6
>>> I should have noted that.
>>> 
>>> Use to work for me too in Mojave.
>>> I have the sneaky feeling that Catalina is the problem.
>>> 
>>> R. W. Oldford
>>> 
>>> https://math.uwaterloo.ca/~rwoldfor
>>> 
>>> ________________________________
>>> From: Peter Dalgaard <pdalgd at gmail.com>
>>> Sent: Thursday, June 11, 2020 5:56:15 PM
>>> To: Wayne Oldford <rwoldford at uwaterloo.ca>
>>> Cc: r-devel at r-project.org <r-devel at r-project.org>
>>> Subject: Re: [Rd] tcltk image reading problem (on a mac?): [tcl] encountered an unsupported criticial chunk type "eXIf"
>>> 
>>> Happy enough for me on Mojave.
>>> 
>>> On the off chance that you are picking up an old Tcl, do you see this?
>>> 
>>>> tcl("info","tclversion")
>>> <Tcl> 8.6
>>> 
>>> 
>>> -pd
>>> 
>>>> On 11 Jun 2020, at 23:04 , Wayne Oldford <rwoldford at uwaterloo.ca> wrote:
>>>> 
>>>> Hello everyone
>>>> 
>>>> I am not sure when this appeared
>>>> (sometime post R 3.5.0 and after I switched to Mac OS Catalina).
>>>> 
>>>> I do not think it happens on all platforms (e.g. seems to work on windows).
>>>> 
>>>> But it seems that
>>>> 
>>>>   tkimage.create()
>>>> 
>>>> no longer works on a Mac for all png files.
>>>> 
>>>> 
>>>> (It does work for *some* old png files I have on disk but I have not been able to determine what is different about the ones that work)
>>>> 
>>>> Any help would be appreciated.
>>>> 
>>>> - Wayne
>>>> 
>>>> 
>>>> R.W. Oldford
>>>> math.uwaterloo.ca/~rwoldfor
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> library(tcltk)
>>>> 
>>>>> fname <- "Rplot.png"
>>>>> png(filename = fname, width = 500, height = 500)
>>>>> hist(rnorm(20))
>>>>> dev.off()
>>>> 
>>>>> tkimage.create("photo", file = fname)
>>>> 
>>>> Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") :
>>>> [tcl] encountered an unsupported criticial chunk type "eXIf".
>>>> 
>>>> 
>>>> ______________________________
>>>> 
>>>>> R.version
>>>>            _
>>>> platform       x86_64-apple-darwin17.0
>>>> arch           x86_64
>>>> os             darwin17.0
>>>> system         x86_64, darwin17.0
>>>> status
>>>> major          4
>>>> minor          0.0
>>>> year           2020
>>>> month          04
>>>> day            24
>>>> svn rev        78286
>>>> language       R
>>>> version.string R version 4.0.0 (2020-04-24)
>>>> nickname       Arbor Day
>>>> 
>>>> ___________________________
>>>> 
>>>> macOS Catalina V 10.15.5
>>>> 
>>>> ___________________________________________________
>>>> 
>>>> 
>>>>     [[alternative HTML version deleted]]
>>>> 
>>>> ______________________________________________
>>>> R-devel at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>> 
>>> --
>>> Peter Dalgaard, Professor,
>>> Center for Statistics, Copenhagen Business School
>>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>>> Phone: (+45)38153501
>>> Office: A 4.23
>>> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 	[[alternative HTML version deleted]]
>>> 
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 
>> 
>> 
>> 
>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 



[Rd] tcltk image reading problem (on a mac?): [tcl] encountered an unsupported criticial chunk type "eXIf"
Simon Urbanek