midora Posted July 20, 2011 Share Posted July 20, 2011 I developed a plugin for an other graphic tool (and still maintaining it) which supports generating of PFDs from bitmaps. It supports soft masks, optional content (layers) and in the future blend modes simular to PDN or Photoshop. The plugin has been written in plain C. I'm thinking about to write a C# wrapper for PDN. The generated PDF would allow to switch on and off layers in Acrobat Reader (I'm not sure whether an other PDF viewer supports this or not). Do you think that people are interested in such a plugin? Is it allowed and possible to call an other plugin from a PDN plugin? (I'm not willing to publish the source code of the plain c code in the moment). I have no experience in C# but in other languages like smalltalk, c++, lisp, ... So I'm guessing it should not be a big problem to get in C#, or? Still it would take some time to do the job ;-) Any hints, frameworks or tools for a filetype plugin are welcome. Martin Quote Link to comment Share on other sites More sharing options...
midora Posted July 28, 2011 Author Share Posted July 28, 2011 My answers ;-) Do you think that people are interested in such a plugin? No answers, so I would say it is just me. Is it allowed and possible to call an other plugin from a PDN plugin? (I'm not willing to publish the source code of the plain c code in the moment). Yes, because the plugin to use photoshop filters does the same. I have no experience in C# but in other languages like smalltalk, c++, lisp, ... So I'm guessing it should not be a big problem to get in C#, or? Still it would take some time to do the job ;-) Started, not a big deal. Any hints, frameworks or tools for a filetype plugin are welcome. Using MS Visual C# Express 2010 works fine. I tested this by modifying an existing pdn filetype plugin. Quote Link to comment Share on other sites More sharing options...
null54 Posted July 28, 2011 Share Posted July 28, 2011 Is it allowed and possible to call an other plugin from a PDN plugin? (I'm not willing to publish the source code of the plain c code in the moment). You could put the PDF saving in a separate dlls for both x86 and x64 and export the functions you need from the dlls, this is how the WebP file type works. Then using Pinvoke you can call the exported functions from the dll, determining at runtime what platform you are running under. for example: private static class PDF32 { [DllImport("PdfIO_x86.dll", EntryPoint ="AddImageToPDF")] static extern void AddImageToPDF(byte[] imageData, int width, int height, int stride); } private static class PDF64 { [DllImport("PdfIO_x64.dll", EntryPoint ="AddImageToPDF")] static extern void AddImageToPDF(byte[] imageData, int width, int height, int stride); } private void AddImageToPDF(byte[] imageData, int width, int height, int stride) { if (IntPtr.Size == 8) // 64-bit { PDF64.AddImageToPDF(byte[] imageData, int width, int height, int stride); } else { PDF32.AddImageToPDF(byte[] imageData, int width, int height, int stride) } } Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint Shop Pro Filetype | RAW Filetype | WebP Filetype The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait Link to comment Share on other sites More sharing options...
Ego Eram Reputo Posted July 28, 2011 Share Posted July 28, 2011 Do you think that people are interested in such a plugin? No answers, so I would say it is just me. Not so fast! I do think this would be very useful and helpful. I'm particularly interested because pdn does not use CYMK and commercial print shops will often accept an alternative file format of PDF. This plugin would reduce the work required to paste the image into Word and then create a PDF from the document. I'd be very happy to see this developed. Quote ebook: Mastering Paint.NET | resources: Plugin Index | Stereogram Tut | proud supporter of Codelab plugins: EER's Plugin Pack | Planetoid | StickMan | WhichSymbol+ | Dr Scott's Markup Renderer | CSV Filetype | dwarf horde plugins: Plugin Browser | ShapeMaker Link to comment Share on other sites More sharing options...
midora Posted July 29, 2011 Author Share Posted July 29, 2011 You could put the PDF saving in a separate dlls for both x86 and x64 and export the functions you need from the dlls, this is how the WebP file type works. Then using Pinvoke you can call the exported functions from the dll, determining at runtime what platform you are running under. Thanks for the hint. I totally forgot about the 64/32 bit issue. So I may have to create a 64bit dll first. Or is it possible to install Paint.NET 32bit beside of the 64bit verson version? Then I could shift this job. I created a 64 dummy dll and the communication worked as you explained. Quote Link to comment Share on other sites More sharing options...
midora Posted July 29, 2011 Author Share Posted July 29, 2011 Not so fast! I do think this would be very useful and helpful. I'm particularly interested because pdn does not use CYMK and commercial print shops will often accept an alternative file format of PDF. This plugin would reduce the work required to paste the image into Word and then create a PDF from the document. I'd be very happy to see this developed. So do you expect that the plugin does color separation? The answer is: No. The only think you may do is to embed a color profile. But Paint.Net does not support this, or? The first version would just create a flat pdf. This should be easy. To add the layers is a little bit more complex and will take some time. By the way, In the moment I'm just doing a proof of concept for a pdn2bmp. A little bit tricky to do the deserialization w/o dot net. But it works and I'm just fighting with the implementation of the blend modes to build the composite image. I'm not sure about the math for all blend modes. Any code snippet would be helpful. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.