Tom,
I think what you're talking about is definitely possible, we've talked about it before. I think one of the hardest cases is dealing with complex paths with transparent gradients -- but it is solvable too. I don't believe that anyone is currently working on it though. If you'd like to, I can give you some pointers about where to start looking in the code.
--Ted
On Thu, 2005-09-29 at 09:29 -0700, Tom Epperly wrote:
I wonder if you've considered an interim solution to generating better EPS files and PDFs for Inkscape drawings with transparent bitmaps. I would like to run and idea past you. I am unfamiliar with Inkscape from a developers perspective, so it may be worthless. In case it's not, here goes.
If we exclude bitmaps which are rotated or skewed, it seems that one could use Inkscape's SVG -> bitmap capability (demonstrated by the PNG export) to resolve the transparency and generate a resolved bitmap that could be used instead of the original tranparent bitmap when producing the EPS/PDF. If a transparent bitmap covers the rectangle defined by its corners (x1, y1) to (x2,y2), you can calculate the dots per inch of the in the x and y dimension taking into account any scaling applied by the user. Use Inkscape to render a bitmap of the rectangle (x1,y1) to (x2, y2) at the maximum of resolution (perhaps min {300, max {x_resolution, y_resolution}}). Use this bitmap instead of the orignal when creating the PDF.
Of course, this idea can be improved upon. For example during the bitmap rendering phase, it would be better to render only the bitmap and elements below it (i.e., things that could actually appear in the transparent parts of the bitmap and not things above). If SVG's bitmap renderer can have different x and y resolutions, match the original bitmaps x and y resolutions. Alternatively, you could render the bitmap at a higher resolution to make sure the background elements that show through the transparent parts appear smooth at reasonable printing resolutions.
I suppose you could even handle scaled, rotated and skewed bitmaps by rendering at high resolution a box that includes the whole scaled, rotated and/or skewed bitmap. Then take the resolved bitmap and undo the scale, skew and/or rotation to generate an unperturbed bitmap that when scaled, rotated and/or skewed will produce the contents that the renderer produced. I am guessing that in 90% of the situations, bitmaps aren't rotated or skewed, so it may not be worth solving the general problem.
Well, what do you think? I recently made a poster with a radial gradient as the background and several logos (tranparent bitmaps) were on top of the gradient. I ended up exporting as a high resolution PNG, converting to TIFF and then converting TIFF2PDF. Inkscape looks like a fine program.
Tom
This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel