[Gtk-sharp-list] new Gdk.Pixbuf (svg_stream) fails on windows but works on unix

Thomas Wach th.wach at wach-it-solutions.de
Tue Oct 21 06:15:24 EDT 2008


Hello Billy,

also a perfect hint! I inpsected my boxes for files named "*loaders*" and
found them as

Windows box ..: C:\Programme\Mono-2.0\etc\gtk-2.0\gdk-pixbuf.loaders
Linux box.........: /etc/gtk-2.0/i386-redhat-linux-gnu/gdk-pixbuf.loaders

Indeed, the file on the Windows box missed the entry for SVG.
So I added a copy of the related section from the Linux box to the file on
my Windows box as follows (modified the first line regaridng the file
location analog to all other entries in my windows file):

"c:/devel/target/gtk+-2.10.6/lib/gtk-2.0/2.10.0/loaders/svg_loader.dll"
"svg" 2 "gtk20" "Scalable Vector Graphics"
"image/svg+xml" "image/svg" "image/svg-xml" "image/vnd.adobe.svg+xml"
"text/xml-svg" "image/svg+xml-compressed" ""
"svg" "svgz" "svg.gz" ""
" <svg" "*    " 100
" <!DOCTYPE svg" "*             " 100

So far, the Pixbuf.Loaders enumeration on my Windows box now shows the type
svg!

But trying to create a pixbuf from a svg-resource now leads me to the same
problem as of direct loading svg-files:
The given module cannot be found.
In case of direct loading an file into an rsvg-object the complained module
was lib-rsvg2.dll.
In this case, creating a pixbuf from a svg-file the complained module is
svg_loader.dll.
But, of course, BOTH files exist in the correct place.

"new Gdk.Pixbuf (svg-stream)" now leads to:
GLib.GException: Bildlader-Modul konnte nicht geladen werden
(pictureloader-module could not be loaded):
C:\Programme\Mono-2.0/lib/gtk-2.0/2.10.0/loaders/svg_loader.dll: Das
angegebene Modul wurde nicht gefunden.
  at Gdk.PixbufLoader.Write (System.Byte[] buf, UInt64 count) [0x00000] 
  at Gdk.PixbufLoader.Write (System.Byte[] bytes, UInt32 count) [0x00000] 
  at Gdk.PixbufLoader.LoadFromStream (System.IO.Stream input) [0x00000] 
  at Gdk.PixbufLoader.InitFromStream (System.IO.Stream stream) [0x00000] 
  at Gdk.PixbufLoader..ctor (System.IO.Stream stream) [0x00000] 
  at Gdk.Pixbuf..ctor (System.IO.Stream stream) [0x00000] 
  at Stairs.Window1..ctor (System.String[] args) [0x00000] 

gdk-pixbuf-query-loaders.exe shows on the console:
g_module_open() failed for
C:\Programme\Mono-2.0/lib/gtk-2.0/2.10.0/loaders\svg_loader.dll: Das
angegebene Modul wurde nicht gefunden. (given module not found)

But prior it pops up messagebox that it could not find libcroco-0.6-3.dll
.....

This is the same file my early test with direct loading and creating of rsvg
objects leaded to.
Searching about libcroco did not give me very much information but it seems
to be a XML-helper for SAX or similar. Anyhow, on my Windows box there not
any file containing "croco" in its name. Neither lib* nor .dll nor .so, just
nothing..

Inspecting the svg_loader.so on my Linux box gave a long list of
dependencies, including the specified libcroco-0.6.so.3.

So It turns out to be a problem of a missing dll-file, though I thaught and
hoped it would not.

Conclusion: The problem is a missing libcroco, isn't it?
Someone got rid of that lib? Maybe an exsiting Windows-dll with another name
that could be mapped via dllmap in Mono-2.0/etc/config? Or a setup that
includes libcroco-0.6-3.dll for Windows boxes?

Kind regards
Thomas



Billy Schoenberg-2 wrote:
> 
> Hello,
> There is also a config file for GTK/GDK *gdk_pixbuf.loaders* which needs
> to
> be set up properly.  I know that I have had many issues using GTK on my
> Win
> XP and Vista boxes.
> 
> Billy
> ______________________________________________
> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
> 

-- 
View this message in context: http://www.nabble.com/new-Gdk.Pixbuf-%28svg_stream%29-fails-on-windows-but-works-on-unix-tp20055917p20086513.html
Sent from the Mono - Gtk# mailing list archive at Nabble.com.



More information about the Gtk-sharp-list mailing list