The lines below needed one more package id that I forgot. Add the following line in the list of packages:

package ifneeded img::base 1.3 [list load $dir/tkimg13.dll]

Jeff

Jeff Hobbs wrote:
OK, you are right and the issue is that things became a bit more complex with the ActiveTcl 8.5 release. We moved to a teapot-based install that obfuscates the exact location. You can see the full set of locations with "puts [join $::auto_path \n]" in a tclsh85 shell.

In any case, as I look at the latest tkkits, I see that for some silly reason it has all the necessary binaries embedded, it just simply lacks the registering of those packages via pkgIndex.tcl. Here is a simple script that will add img::jpeg (and other formats) to the tkkit. Run with tclsh85. There should be no line breaks in the code. The same could run on any platform, but you'd have to point to the right tkkit and use the .so instead of .dll library names.

Jeff

##################################
package require vfs
set tkkit "C:/Perl10/lib/auto/Tcl/tkkit.dll" ; # set to correct path
file attributes $tkkit -readonly 0 ; # needs to be writable
vfs::mk4::Mount $tkkit tkkit ; # mounts file as dir 'tkkit'
set pkg tkkit/lib/Img1.3/pkgIndex.tcl
set fid [open $pkg w]
puts $fid {# Img package bits
package ifneeded pngtcl 1.2.24 [list load $dir/pngtcl1224.dll]
package ifneeded zlibtcl 1.2.3 [list load $dir/zlibtcl123.dll]
package ifneeded tifftcl 3.8.2 [list load $dir/tifftcl382.dll]
package ifneeded jpegtcl 1.0 [list load $dir/jpegtcl10.dll]
package ifneeded img::bmp 1.3 [list load $dir/tkimgbmp13.dll]
package ifneeded img::gif 1.3 [list load $dir/tkimggif13.dll]
package ifneeded img::ico 1.3 [list load $dir/tkimgico13.dll]
package ifneeded img::jpeg 1.3 [list load $dir/tkimgjpeg13.dll]
package ifneeded img::pcx 1.3 [list load $dir/tkimgpcx13.dll]
package ifneeded img::pixmap 1.3 [list load $dir/tkimgpixmap13.dll]
package ifneeded img::png 1.3 [list load $dir/tkimgpng13.dll]
package ifneeded img::ppm 1.3 [list load $dir/tkimgppm13.dll]
package ifneeded img::ps 1.3 [list load $dir/tkimgps13.dll]
package ifneeded img::sgi 1.3 [list load $dir/tkimgsgi13.dll]
package ifneeded img::sun 1.3 [list load $dir/tkimgsun13.dll]
package ifneeded img::tga 1.3 [list load $dir/tkimgtga13.dll]
package ifneeded img::tiff 1.3 [list load $dir/tkimgtiff13.dll]
package ifneeded img::window 1.3 [list load $dir/tkimgwindow13.dll]
package ifneeded img::xbm 1.3 [list load $dir/tkimgxbm13.dll]
package ifneeded img::xpm 1.3 [list load $dir/tkimgxpm13.dll]
package ifneeded img::base 1.3 [list load $dir/tkimg13.dll]
}
close $fid
vfs::unmount tkkit
exit
###################################

Reply via email to