Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by midora

  1. When writing a file type plugin there is scratchSurface in OnSave method. Can anyone tell me what it is and what's for?

    The scratchSurface is a pixel buffer in the size of the document. You may use this buffer to render input (the document).

    The application may save memory if you are using this buffer and not your own one.

    • Upvote 1
  2. In the ImPDF plugin I like to offer the possibility to select the following types of content:

    - Flat (1 page containing the composite image)

    - Separated (n pages containing the visible layers)

    - Flat + Seperated (n + 1 pages)

    - Layered (1 page, Layers can be switched on or off in the viewer)

    - Presentation (n pages containig the visible layers. The timing and transition effects can be set in the plugin)

    For this I have to set the "SupportsLayers" flag in the filetype plugin.

    I know Rick has an eye on this flattening issue because he likes to avoid that the user is loosing data by mistake.

    Here the user decides in the plugin what should happen.

    Is this OK?

  3. A library is a virtual folder (a collection of folders).

    Typically it shows the content of "My pictures" and "Public pictures" ("C:\Users\Public\Pictures") merged together. (See the hint: "Includes: 2 locations" on top of your first screenshot).

    This is sometimes confusing. So click in the sidebar of the fileselector "Libraries" and there "Pictures"

  4. Is there a wy to do this? Or could a new method be added to do this in the future?

    Sometimes the options for a filetype plugin are in an incomplete or in a bad combination state. In this case it would be fine to disable the OK button temporary. Just as a feedback for the user that he has to adapt the options.

    In the moment I'm marking incomplete controls with red labels because I know that saving will fail. But from the user experience point it would be better to disallow OK in this situation.

  5. The following three screenshots show the problem.

    1 => 2: Changed "Page Size" to "A4" which sets some additional layout controls to visible. The "Defaults" button does not move.

    2 => 3: Changed "Encryption" to "High" which sets some additional encryption controls to visible. The "Defaults" button" moves because the panel reachs the maximum size and has to show the vertical slider.

    I do not set the position of the controls. Just changing the visibility. The rest is done by the TableLayoutPanel logic.

    The dll is not ready in the moment, maybe next weekend.


  6. There is a small issue with the 'Defaults' button I'm fighting with in a file type plugin.

    Because the space for settings is limited I'm adapting the ui depending on the current settings.

    For this I set the 'Autosize' property in my SaveConfigWidget() constructor to true (this.AutoSize = true;).

    This works fine in most cases and the 'Defaults' button moves depending on the size of the plugin panel.

    But if the user unfolds a setting to show some sub settings the 'Defaults' button keeps it location and covers some of the controls.

    It works in the case that unfolding forces Paint.NET to show a vertical scrollbar for the plugin panel.

    Is there something I can do in the plugin to trigger the owner of the plugin panel to adapt the position of the 'Defaults' button?

    Or could Paint.NET be changed to react on a size change of the plugin panel?

  7. Version 4.0 will improve on this somewhat. The problem here is that any type of "I/O error" is reported using the IOException type. Further details are only provided in a localized manner, e.g. as text meant for the end-user. I can't really detect, programmatically at least, and in a non-fragile manner, what type of I/O error there was.

    That's an improvement for sure. Thanks.

    I'm not an C# expert but I would expect that the HResult property of IOExeption provides the access error code.

    Best solution for this problem may be a test of the access state before the save configuration dialog is shown.

    Simular to the test whether the destination file exists already. Which shows the "Do you want to replace it?" message box.

    (OK this messagebox is part of the file selector).

  8. Sometimes when I try to save an image I'm getting this message.

    The reason is that the image is open in an other destination.

    Would it be possible to implement a more informative error message in this case?

    Typically Windows throws an access error when you try to open the file for write in this case.

    I guess it is a Paint.NET issue and not one in the filetype plugins.

    My understanding is that filetype plugins are writing to a stream which stores the data in a .tmp file.

    After that Paint.NET copies the temp file to the destination file and throws the i/o error.

  9. Hello, I just started using Paint.net not long ago and it works really well, and its an awesome program! I've just started taking a game development class in c++ and it seems whenever I make an image using paint.net it saves it as a palette-based image (according to the folks at a help website for the game gdk I use) and for some reason it sets the entire image as invisible because of this, Im not sure exactly why this doesnt work, but here is the response from the gentleman at TGC who was trying to help me:

    is there any way to make it work as a non palette based image? Sorry if this is confusing but Im not really sure how this whole thing is supposed to work! I'm new to image editing and I haven got the hang of it yet.

    any help is much appreciated.

    You didn't mention what file format you are using to save the image.

    Some file formats show a 'save configuration' dialog during save.

    If the settings tell that 'Bit Depth' is set to 'auto-detect' then Paint.NET may always save your image with a palette.

    Try to select something like 24-bit instead.

  10. Sometimes I'm getting photoshop files with hundreds of layers.

    I'm really happy that I'm able to open them in Paint.NET.

    But because of the amount of layers it is sometimes difficult to figure out which detail is on which layer.

    And to switch off layers up to the point that only the layer in question is left is little bit painful.


    Add an additional button at the bottom of the layers window.

    If the button is selected then only the active layer is visible in the main window and not a merge of the visible layers.

    You may then activate one layer after the other to check the content.

    Maybe if the button is selected then this could overwrite the visiblity attribute of the layer temporary.

  11. Yeah, it's getting closer, thanks for your help :).

    And it is really annoying me that I can't remember! I've even tried every plug in I have, but I did it at my dads, so I might have more plug ins there. :(

    PS: I love how much attention my avi is getting ;)

    And to midora, yes it is breathtakingly hilarious. In fact every time I see it I get overwhelmed by laughter, leaving me incapacitated on the floor.

    That's the same attention like the guy in Oslo tried to get. I thought this is a family friendly forum. Sorry I know this is off topic but because I'm forced to see it I'm allowing myself to tell what I'm thinking.

  12. after using Photoshop and Paint Shop Pro for many years.. i particularly grew attached the excellent thumbnail browser feature in Paint shop pro.

    It would be fantastic if this feature could be worked into Paint.NET

    I'm just a user of Paint.NET but I'm pretty sure that this will no be happen because Paint.NET is an digital image editor and not a browser.

    In the near future you may use Irfanview to browse your .pdn files in thumbnail and normal view. From there you can setup Paint.NET as the editor of your choice.

  13. DPI is for American system users

    If you are using Metric system, then you need to deal with DPCM (dot/cm)

    Open new file, and do these in same order:

    1-Put 118 for Pixels/Cm

    2-Put 21 for Width

    3-Put 14.8 for Height

    Click OK, and start working on your design.

    This is equivalent to 300 DPI

    EDIT: spelling correction

    The native resolutions of printers all over the world is DPI.

    My understanding of how Paint.NET works is that it stores the active resolution unit of the document when you are closing the new dialog with OK.

    This is independent of the resolution unit setting in the toolbar.

    If you like to avoid rounding problems you should always use the dpi unit in the new dialog.

  14. I'm very happy with Paint.net, as its interface doesn't drive me crazy like PSP7 did. But I'm having one difficulty, sometimes I can't draw anything at all, and I can't work out what mode I am in that stops me from doing anything. I just have one layer, all very simple.

    I'd appreciate help!


    Mick Berg.

    Typically there is an active selection and you are trying to draw outside of the selection.

    Next time press CTRL-D (Deselect) and try again to draw.

    • Upvote 1
  15. 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.

  • Create New...