IanMercer / imagemultiplier

Image Multiplier is the easiest way to create all of the PNG files you need for a complex Xamarin Solution including all of the sizes needed by Android and iOS. It converts SVG files to PNG files according to a set of specifications. You can install it from the Gallery in the Add-in Manager in Xamarin Studio.
19 stars 6 forks source link

Errors in file generation #1

Open Kurtpenter opened 9 years ago

Kurtpenter commented 9 years ago

Hi Ian, I'm trying to use your add-in on Xamarin 5.7.2 and 5.8 on Mac OS X 10.9 but it gives me an error.

I added ImageMultiplier 1.3.6 from the Add-in Manager but when the i build the project I get an error and the Tool output contains:

Running generator 'ImageMultiplierGenerator' on file [...omissis...]/android/default.multiplier'...
Creating images for [...]/android/default.multiplier

Running generator 'ImageMultiplierGenerator' on file '[...]/android/default.multiplier'...
Creating images for [...]/android/default.multiplier
Added output specifier { type: 'AndroidIcon', width: 36, color: '#f80c12', path: 'android/Resources/drawable-ldpi/{0}' }
[...]/data/images/logo.svg
   --> PNG is new : [...]/android/Resources/drawable-ldpi/logo.png

Errors in file generation.

In the errors pane I see: [...]/android/default.multiplier(1,1): Error: An exception was thrown by the type initializer for System.Drawing.GDIPlus (solution-name)

Note the paths and permissions are all correct but the logo.png is not created.

Is there a way to have more information from the tool logs?

Thanks!

IanMercer commented 9 years ago

You could certainly modify it to display more of the Exception message but the 'type initializer' type of Exception is often hard to get any further information. Any chance you could share the offending SVG and .multiplier file and I'll take a look.

GeoffArmstrong commented 9 years ago

I'm having this issue as well. Running it on a Mac with Yosemite. I haven't been able to get any SVGs to work, whether they came from Google's Material Design repository or ones I made with Illustrator.

Multiplier file:

{ type: "DrIcon32", width: 32, path: "Android/Resources/drawable-mdpi/{0}" }
{ type: "DrIcon32", width: 48, path: "Android/Resources/drawable-hdpi/{0}" }
{ type: "DrIcon32", width: 64, path: "Android/Resources/drawable-xhdpi/{0}" }
{ type: "DrIcon32", width: 96, path: "Android/Resources/drawable-xxhdpi/{0}" }

{ type: "DrIcon40", width: 40, path: "Android/Resources/drawable-mdpi/{0}" }
{ type: "DrIcon40", width: 60, path: "Android/Resources/drawable-hdpi/{0}" }
{ type: "DrIcon40", width: 80, path: "Android/Resources/drawable-xhdpi/{0}" }
{ type: "DrIcon40", width: 120, path: "Android/Resources/drawable-xxhdpi/{0}" }

{ type: "IosIcon32", width: 32, path: "iOS/Resources/{0}" }
{ type: "IosIcon32", width: 64, path: "iOS/Resources/{0}@2x" }

{ type: "IosIcon40", width: 40, path: "iOS/Resources/{0}" }
{ type: "IosIcon40", width: 80, path: "iOS/Resources/{0}@2x" }

{ process: "Icons/*_32.svg", as: ["DrIcon32", "IosIcon32"] }
{ process: "Icons/*_40.svg", as: ["DrIcon40", "IosIcon40"] }

SVG file from Illustrator that failed:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="500px" height="500px" viewBox="0 0 500 500" enable-background="new 0 0 500 500" xml:space="preserve">
<polygon points="496.343,250.002 267.178,20.835 221.174,66.847 371.796,217.47 11.591,217.466 11.587,282.534 371.787,282.539 
    221.174,433.156 267.178,479.165 496.349,250.002 "/>
</svg>

SVG file from Google that failed, both with and without the xml bit at the beginning:

<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><path d="M44 11.44l-9.19-7.71-2.57 3.06 9.19 7.71L44 11.44zM15.76 6.78l-2.57-3.06L4 11.43l2.57 3.06 9.19-7.71zM25 16h-3v12l9.49 5.71L33 31.24l-8-4.74V16zm-1.01-8C14.04 8 6 16.06 6 26s8.04 18 17.99 18S42 35.94 42 26 33.94 8 23.99 8zM24 40c-7.73 0-14-6.27-14-14s6.27-14 14-14 14 6.27 14 14-6.26 14-14 14z"/></svg>

Regardless of anything else, it seems to give the "An exception was thrown by the type initializer for System.Drawing.GDIPlus" error. I didn't really do anything special in installing ImageMultiplier; just added it from the bog-standard Addin browser.

IanMercer commented 9 years ago

Thanks for posting the files, I will take a look. I'm traveling at the moment so it will be a few days before I can get to this.

GeoffArmstrong commented 9 years ago

Thanks for any insight you can provide. I like the idea of ImageMultiplier. :)

GeoffArmstrong commented 9 years ago

Any insight? :)

GeoffArmstrong commented 9 years ago

I'd really appreciate it if you would be willing to take a look at this. Thanks!