A bunch of additional improvements available

by abenedik 31. January 2009 20:36

I have got some great test svg files and some very helpful user feedback. This lead to the following improvements in Ab2d.ReaderSvg:

  • Added AutoSize property. If its value is true (default - as previous version) the size of returned Canvas is calculated from the size of objects it contains. This is useful if you do not care whether the objects were drawn on the Letter or A4 page - you just need the returned object to be as big as its containg objects. If AutoSize is false the size defined in svg element is used for the size of returned Canvas. This is useful if you were working on a Letter page and would like to preserve the positions of objects inside the Letter area.
  • Improved measuring of objects when AutoSize is true (now transformed elements are correctly measured).
  • Improved ellipse - before svg ellipse was converted into Path WPF element - now it is converted into Ellipse WPF element
  • Added reading elements inside svg link element (before the whole element was skipped). Linking is not supported, but its content is now rendered.
  • Added support for underline and line-through text decorations.
  • Improved processing of text and tspan svg elements.
  • Added help file.

The ViewerSvg has been also improved to support new AutoSize property. Now it also has an automatic error reporting - when an exception occurs in ViewerSvg or Ab2d.ReaderSvg, user can now submit error information to help resolve the problems.

The new automatic error reporting is now part of new Paste2Xaml as well.

To install the new version, download the installer from my Downloads page and simply install it over the previous version (no need to uninstall).

Tags: , , , , ,

ReaderSvg | ReaderWmf

New Ab2d.ReaderWmf support Drawing objects with advanced optimization

by abenedik 5. December 2008 00:45

I am really excited to inform you about new features of the new Ab2d.ReaderWmf v3.0 library.

Previous versions of Ab2d.ReaderWmf read metafiles and returned them as Shapes (Path, Polyline, Ellipse, etc.). This was great when you needed to manipulate separate objects or add some mouse events to objects. This flexibility with Shapes has its cost when complex objects are shown - the performance could be very poor and memory consumption very high.

WPF provides a much more efficient way to show more complex images with Drawing objects - objects that derive from Geometry class - DrawingGeometry, StreamGeometry, etc. The new version of Ab2d.ReaderWmf provides a ReadGeometry method that returns drawing objects (the Read method returns Shapes). And this is not all - it is possible to further optimize the drawing by using resources for similar Pens and Brushes and by combining geometries together..

The following two graphs show how the load time and the memory usage are decreased when optimized Drawing objects are used. Results are based on a complex dwg (AutoCAD) file that was converted to metafile and exported to xaml with Paste2Xaml with different export options.

geometry load time
geometry memory usage

The results show that it is possible that the load time decreases for more than 10 times and the memory usage for more than 5 times. This is especially true for metafile with lots of objects that have same pen or brush. The results are best on files created from AutoCAD or other CAD or vector drawing application. Cliparts and other types of metafiles also have significant performance improvement.

Heavy optimization of course has its side effects. If geometries are be combined, they cannot be manipulated individually. It is possible that with full optimization, some animalied appear on image. Because of this, it is possible to fine tune the optimization with lots of advanced options and find the right balance between usability and performance.

The following two screenshots show the new Paste2Xaml application and its new Export dialog:

Paste2Xaml
Paste2Xaml ExportDialog

And there is more new to show. The next new feature is support for building ResourceDictionaries from many metafiles. ResourceDictionaryWriter class can be used to simplify this job. And to make this even simpler there is also a sample application with full source code that on one side shows how to use the ResourceDictionaryWriter and on the other side provides really easy to use application to create ResourceDictionaries. The following image shows the ResourceDictionaryWriter application:

ResourceDictionaryWriter

The list of new features is not over. Here is also a GetXaml method that gets the xaml text of the last read metafile. This method is needed because the WPF's XamlWriter does not correctly write some elements and is also not useful for naming elements and writing ResourceDictionaries.

That is quite a bunch of new features, isn't it?

So to conclude. The new version of Ab2d.ReaderWmf library not only enables you to convert almost any image from almost any vector drawing application into xaml, but also enables you to choose between Shapes and optimized Drawing objects and also enables you to package all those objects into a ResourceDictionary.

The only thing left to say is to invite you to try the 60 days evaluation version. It is available from https://www.ab4d.com/Paste2Xaml.aspx.

Tags: , , ,

ReaderWmf

Commercial versions of Ab2d.ReaderSvg and Ab2d.ReaderWmf available

by abenedik 8. August 2008 10:40

I am happy to announce that the commercial versions of Ab2d.ReaderSvg and Ab2d.ReaderWmf are available.

The purchase can be done on https://www.ab4d.com/Purchase.aspx.

As rss subscriber I give you 10% launch discount.
For ReaderSvg enter "ReaderSvgRss" as a discount code on the Purchase page. For ReaderWmf enter "ReaderWmfRss"

The discount is valid only until the end of August 2008.

Tags: , , , , ,

ReaderSvg | ReaderWmf

New version of Ab2d.ReaderSvg and Ab2d.ReaderWmf available

by abenedik 8. July 2008 09:04

Based on great users feedback both svg and metafile importer libraries were improved.

New in Ab2d.ReaderSvg library v1.7:

  • Improved reading text - added support for nested tspan elements inside text.
  • Fixed reading text-anchor when defined in parent elements.
  • Improved reading svg files with missing xmlns declarations.
  • Improved performance when reading text. Also now more fonts are rendered correctly.
  • Fixed reading embedded images (sometime the bounds of the TextureBrush) were not read correctly.

New in Ab2d.ReaderWmf library v1.4:

  • Added support for pen's LineJoin, LineCap and Dash Style.
  • Added support for Arc.
  • Improved placing text in some metafiles.
  • Corrected the width of the lines.
  • Correctly use Polyline and Polygon.

New versions are available from www.ab4d.com/Overview2d.aspx.

The commercial versions for both Ab2d.ReaderSvg and Ab2d.ReaderWmf will be available soon - probably in one month time. This makes the published versions the last freely available versions. Both will expire on 31th December 2008.

Thank you to all who have provided feedback on the Ab2d libraries.

Tags: , , , , ,

ReaderSvg | ReaderWmf

Silverlight? Yes, the new Paste2Xaml and ViewerSvg support Silverlight!

by abenedik 31. March 2008 00:30

A while ago I spoke with Matevz Gacnik (his great blog: www.request-response.com/blog). He just came from MIX08 and told me that Silverlight is hot. Very hot! "You should implement support for it as soon as possible!" he said.

He is Microsoft's MVP. That means his advice should be taken seriously. So I postponed my current work - preparing a commercial version of Reader3ds.

Now I am proud to announce that new version of Paste2Xaml and ViewerSvg support Silverlight.

The following screenshots shows the new ViewerSvg with opened svg file and Export dialog:
ViewerSvg application
ViewerSvg export options

Now it is possible to use almost any 2D or 3D drawing application to create user interface elements for Silverlight applications. You can draw it in Adobe® Illustrator®, CorelDRAW®, Inkscape, Microsoft Visio or other vector drawing application, save the work in svg file and use ViewerSvg to convert the drawing into xaml. If the application support save into Windows metafile (wmf or emf) like Autocad, it is possible to use Paste2Xaml to convert the saved metafile into xaml. If it is not possible to save the drawing into svg or metafile you can use copy and paste the drawing into Paste2Xaml. This can be used for example for converting graphs from Excel or WordArt from Microsoft Work into xaml. Also there are already huge internet image libraries that can be a great source for user interface elements (see Links section).

So you can use your favorite drawing application and simply draw the user interface of your WPF or Silverlight application in it.

There are also some other improvements and bug fixes:

New in Paste2Xaml library v1.3:

  • Added support for silverlight.
  • Added objects tree view with rename option - possible to export elements with name (so they can be manipulated later from the code).
  • Added select object with mouse.


New in ViewerSvg library v1.3:

  • Added support for silverlight.
  • Added object selection with mouse.
  • Added export dialog with xaml text and preview tabs.
  • Added selecting number of decimals in the exported xaml (useful for optimizing the size of exported xaml).
  • Added possibility to export only selected elements.


New in ReaderSvg library v1.6:

  • Fixed reading number in exponent format (for example 1.234e-3) in transform element. This fixed the problems when some elements in the read image were placed on the wrong location and with the wrong size.


New in ReaderWmf library v1.3:

  • Fixed problems with some wmf files that were imported with some anomalies (lost details)

New version of all the Ab2d tools and libraries is available from www.ab4d.com/Overview2d.aspx.

Tags: , , , , ,

ReaderSvg | ReaderWmf

New versions of Ab2d tools and libraries

by abenedik 5. March 2008 00:20

Based on users feedback all the Ab2d tools and libraries were improved.

Paste2Xaml (utility to read Windows metafiles (wmf), Enhanced Metafiles (emf) or get matafile objects from clipboard and can convert it into xaml) and ViewerSvg (utility to convert svg and svgz files into xaml) has been improved with a zoom toolbox that enable panning and zooming (top right on the image below).

ViewerSvg application
New in Ab2d.ReaderSvg library v1.5:

  • Added support for reading svgz (compresses svg) files.
  • Fixed reading some embedded images - sometimes "Invalid character in a Base-64 string." exception was thrown.


New in Ab2d.ReaderWmf library v1.2:

  • Fixed reading some wmf files - especially files exported from Autocad are converted properly now.
  • Added MinLineWidthFactor property - useful for metafiles with lots of lines. With the property it is possible to adjust thickness of the lines.
  • Added EmbeddedBitmapImages property that replaced the obsolete MetafileImages (because of misunderstanding of the property)
  • Added support for reading pixels (individual points) from metafiles - they are converted to Ellipse elements with the specified radius.

New version is available from www.ab4d.com/Overview2d.aspx.

Thank you to all who have provided feedback on the Ab2d tools and libraries.
If you would also like to have some additional functionality or did find a file that does not work correctly, you are most welcome to inform me about it on my feedback page.
There is also a discussions group where you can post a question or see already answered ones.

Tags: , , , ,

ReaderSvg | ReaderWmf

Reading SVG images, Windows metafiles (wmf) and Enhanced Metafiles (emf) from XAML

by abenedik 4. January 2008 00:20

With new version of ReaderSvg and ReaderWmf it is now possible to read SVG, Windows metafiles (wmf) and Enhanced Metafiles (emf) from XAML.

For example:
<ab2d:SvgViewbox Source="samples/myClipart.svg"/>

SvgViewbox can be used just as Image control. Its Source property is set to the Uri of the svg file. It can be a resource, content, located on the web or on the local hard disk. It can be also used for DataBinging - for example from Combobox. For reading metafiles there is a WmfViewbox control.

There are also some other improvements and bugfixes.

New version is available from www.ab4d.com/Overview2d.aspx.

Tags: , , , ,

ReaderSvg | ReaderWmf