Jump to content

midora

Members
  • Posts

    1,782
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by midora

  1. Just seen that there is a subforum 'plugin packs' now (or maybe it is just new for me ,-) So it may be an idea to separate FileType and Effect plugins in subfora.
  2. There are reasons. But you should aways think about if there is 'inverse' algorithm. For sure this algorithm may not look as elegant as the intuitive one. Still try to think in the way what is needed to generate a destination pixel. If you got it then it is easy to iterate a destination slice.
  3. FurBlur does all rendering in OnSetRenderInfo to a temporary bitmap. On Render just copies the slices from the temporary bitmap to the destination. Red: The question reminds me that I forgot to propose to simplify the job. - Throw away the temporary bitmap and render directly to the destination bitmap. - Remove any code from OnRender In general plugin authors should avoid to do the rendering in OnSetRenderInfo because you are killing the multithreading support in Paint.NET. But sometimes there are reasons to do it.
  4. Rectangle select tells in the statusbar that Area is 0. Ellipse select tells a value but it is different than in MeasureSelection plugin. But this may be because auf antialiased selection borders. The order of tools in the toolstrip menu is a little bit strange: Rectangle Select, Move Selected Pixels, Lasso Select, Move Selection, Ellipse Select, Zoom, Magic Wand Propose: Rectangle Select, Ellipse Select, Lasso Select, Magic Wand, Move Selected Pixels, Move Selection, Zoom
  5. Regarding the switch to Paint.NET 4 and .NET 4.5. Should we keep the references to the old dlls and stay with .NET 3.5 or is there an advantage to switch to the new dlls which require .NET 4.5? Are there new interfaces or features available?
  6. So you need to create a bmp against a specific palette packed with rle. Quite specific. I would propose to look for an image converter to do this job. But no idea which one may supports rle. The rle algorithm itself is easy to implement.
  7. Update v1.2 (15.10.2013) - Patches to support Paint.NET 4.0
  8. Update 1.4 (15.10.2013) - Patches to support Paint.NET 4.0
  9. Update 0.10 (15.10.2013) - Patches to support Paint.NET 4.0
  10. This is just a small part of the path tools which may allow you (hopefully) to edit vectors in Paint.NET. We like to support you the artists :-)
  11. I like the improved error message on FileType plugins. Still I would prefer that OperationCancelException would be ignored.
  12. If you like to edit objects after creation then it may be better to use an vector editor application like inkscape. In Paint.NET you would place each object on its own layer. This allows you to move the objects later.
  13. Is there a way to install the 4.0 in parallel to the 3.5.11?
  14. Moderators Note: There is an alternative plugin available by @otuncelli that supports Layers. https://forums.getpaint.net/topic/117086-scalable-vector-graphics-filetype-alternative-plugin-svg-svgz/ 'Scalable Vector Graphics' FileType Plugin (.SVG, .SVGZ) Summary Imports SVG files (and the compressed variant SVGZ) and renders them to Paint.NET bitmap layers. This plugin does not require an external renderer like Inkscape. The SVG specification is a living standard, do not expect that this plugin supports all features. (Some do not make sense in an image editor like interactivity or animation elements). Using the plugin you can open the downloaded files in any resolution you like w/o loss of quality. Author Martin Osieka Download >>ImSVG.FileType v0.18 (23.3.2014) Installation Follow the instructions carefully Mod note: The instructions in the downloaded ReadMe.txt file are out of date, so follow those below. Create a folder in FileTypes to hold the plugin files, e.g. Paint.NET\FileTypes\ImSVG.FileType Copy the files from the ZIP into the Paint.NET\FileTypes\ImSVG.FileType folder Remove other plugins supporting the same file type (.svg) from Paint.NET\FileTypes\ folder (to avoid possible conflicts) I.e. 'SVGImport.dll' plugin. Remove any older ImSVG*.* files (if updating) To verify the installation you should restart Paint.NET and check that in the filetype popup of the open file selector dialog is an entry starting with SVG. Compatibility Paint.NET 3.5.11 and 4.0.5 Supported languages The language used in the plugin depends on the language setting of Paint.NET and the support of this language by the plugin. The fallback is the first supported language of the plugin. Languages are defined in the .dlc files. This plugin supports the following languages in the moment: English Deutsch Dialog options http://www.comsquare.ch/files/downloads/ImSVG.Open.FileType.Dialog.jpg Size settings given in SVG file (readonly) Some SVG files provide hints about the canvas to create by the application. Viewport is the size to use on the canvas. Width and height may show a unit or a percentage. Viewbox is the range of coordinates used in the SVG file. The viewbox will be stretched to the viewport respecting aspect ratio (or not). Size selection by user Resolution: The DPI value is used to setup the document and to calculate coordinates and lengths in the SVG file. If the viewport has values with units then changing the dpi value will change the canvas pixel size. This allows you to get a better quality of the rendered SVG graphic. Canvas: The pixel size used for the document. Keep Aspect Ratio: Keeps the ratio between canvas width and canvas height Options Background: Typically the background of an SVG file is transparent. This option allows you to select your own background. If the 'Layers' option is not set to 'flat' then the background will be placed in a separate layer. Layers: If this option is not set to 'flat' then a new layer will be generated for each top-level element in the svg file. If you created the file with Inkscape it will show you the inkscape layer structure. Be warned: Depending on the file the not 'flat' option will generate a lot of layers. This may slow down the application. File folder: Paint.NET does not provide the file path to the plugin (just a data stream). If an SVG file uses relative references to other files (like bitmap images) then this option allows you to specify the SVG file folder. File Infos (read only) (only visible if they are defined in the SVG file) Title: The 'title' element of the svg file. Description: The 'desc' element of the svg file. Known issues Paint.NET does not provide a load dialog template to filetype plugins. So to allow ImSVG to show a dialog it delegates its dialog (derived from PdnBaseForm) to the thread of the main window. This works fine but not perfect. So you will not get an error beep if you are clicking to the main window while the ImSVG dialog is open. If you are cancelling the option dialog you will get an unspecified error. But this just means that Paint.NET has no idea about cancelling the open operation. Paint.NET 4.0 shows in the "Error details" that the user cancelled the action. Paint.NET 3.5.11: If you try to 'Save' (not 'Save As') a loaded svg then Paint.NET will not fallback to 'Save As' automatically. The 'Save' dialog opens and shows an error. This is fixed in Paint.NET 4.0. To Do list Add support for filter element (Minimum Gaussean blur). Improve text support (Font handling, text areas and text on path) Better support for SpreadMethod attribute used for gradients. Examples Here are two examples of SVG files from Wikipedia.de 'Smiley' http://upload.wikimedia.org/wikipedia/commons/d/d5/Face-angel.svg http://upload.wikimedia.org/wikipedia/commons/7/70/Face-devil-grin.svg Remark: For some reason the image tag of the thread editor does not allow the .svg extension. Therefore here are the .png versions http://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Face-angel.svg/48px-Face-angel.svg.png http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Face-devil-grin.svg/48px-Face-devil-grin.svg.png History 0.18 (23.3.2014) - Dll name changed from ImSVG.FileType.dll to ImSVG.Open.FileType.dll - Changed the handling of the resolution and canvas options. - Updated to OptionBasedLibraray 0.6 0.10 (15.10.2013) - Patches to support Paint.NET 4.0 0.9 (14.10.2013) - First public release
  15. I'm confused you need RLE encoded BMPs because standard BMPs do not work in target sw? Do you know that RLE encoding may create BMPs which are larger than normal ones?
  16. Update 1.3 (12.10.2013) - Added angles of the diagonal inside of the minimal bounding rectangle. - Replaced simple text controls with a drawing showing the results.
  17. 'Chop Up and Save' Tools Effect Plugin - (Moderator Note - this plugin 3/15/24 is not working in 5.0.13) Summary Chop up the current layer into tiles and save them to files. The resulting files may be packed into a single zip archive. Supported tile image formats: PNG - ARGB PNG w/o transparency - RGB BMP - ARGB BMP w/o transparency - RGB GIF JPG You may restrict the area to chop up by the current selection. Keywords Tiles, Save Tiles Author Martin Osieka Download >> Chop & Save 2.zip Installation Follow the instructions carefully Unzip "ChopUp.Effect vX.X.zip" Copy the two files OptionBasedLibrary vX.X.dll/.dlc to the Paint.NET Effects Folder. "C:\Program Files\Paint.NET\Effects". Copy the two files 'ChopUp.dll/dlc' to the Paint.NET\Effects\ folder. A typical location is "C:\Program Files\Paint.NET\Effects". Do not remove older versions of the OptionBasedLibrary if they are required from other plugins. After a restart of Paint.NET you will find the plugin under Menu->Effects->Tools. Compatibility Paint.NET 3.5.11 and 4.0.5 and 4.2.10 Supported languages The language used in the plugin depends on the language setting of Paint.NET and the support of this language by the plugin. The fallback is the first supported language of the plugin. Languages are defined in the .dlc files. This plugin supports the following languages in the moment: English Deutsch You may add your own translation to the .dlc file. Dialog options http://www.comsquare.ch/files/images/ChopUp.Dialog.jpg This software includes the class ZipOutputStream from DotNetZip distribution to do the zipping. See DotNetZip.License.Combined.rtf. Known issues None Examples None History 1.1 (11.10.2013) - Added zipping to archive 1.0 (10.10.2013) - Initial version
  18. Sorry for some reason I missed the responses. I know them but the reason for the request was not to save coding time. For sure effects can do this. The main reason is to improve the speed. It is much easier to implement and maintain the best perfomant algorithm in the caller and not in the plugins. The reason why I found this thread now ;-) is an additional request for an 'Unlimited' EffectFlag. Sometimes you really like to change pixels outside of the selection. And I can't see a reason why this should be evil. In general I agree that user experience of functionality should not differ too much in the same group of functions. But I do not expect that users would have a problem to understand this (quite the contrary). I just did a spirit level tool to rotate selection/layer according to a reference line. And it is just not nice that the selection cuts the rotated part. For sure a user could just do select ->cut->copy to new layer->deselect->rotate->flatten. Or I could implement the funtionality as part of the path tools. BTW: On my wishlist: A menu function "Image->Rotate..." which increases the document automatically to avoid cutting of part of the image.
  19. Thanks. Sounds like fine-tuning of a christmas version ;-)
  20. Jpeg has no idea about RGB it stores data in YCbCr format. In most cases iJpeg is not a lossless image file format. So if quality is an issue then never store your file as jpeg. Jpeg is used to save disk space. RGB color space is not a quite good requirement description it may be sRGB, AdobeRGB, RGB with a color profile or what else. Because Paint.NET does not support color management (including color profiles or gamma) your are not able to create something else than sRGB. So save as PNG. Your printer should be able to figure out that the file contains sRGB.
  21. Forgot to ask you to use SubmenuNames.Blurs instead of "Blurs" in the constructor.
  22. It's a lot of work to write your own UI to get a good look and feel. PropertyBased is fine but for good reasons quite restrictive. OptionBased i.e. allows custom controls derived from the basic OptionControl but doing this also means it is your responsibility that it works. For some reason not all PropertyBased controls provide a reset button. OptionBased does for all editable controls. Plus a "Reset All" button. The difference between DropDown lists and RadioButtons on one side and checkboxes on the other is that the first return a 1 of N result and the second N of N. OptionBased has an OptionEnumCheckBoxes handling a list of booleans (see example at the bottom of the pathtools). To save space RadioButtons and CheckBoxes allow to define the number of columns to use. I^m not quite sure how Checkboxes in a DropDown could work for the user. OptionBased provides an overridable 'about' dialog in the menu at the bottom of the dialog which shows basic information extracted from the assembly and a text defined in the translation file. Maybe tooltips would be usefull. But we are misusing your thread...
  23. Yes ;-) Totally agree, PropertyBased would need void and container properties (proposed sometime ago). Here an example which keeps the basic look of PropertyBased but adds small variations: This is the ui code new OptionPage(OptionNames.FurBlur, optContext) { new OptionDoubleSlider(OptionNames.FBRepetitions, optContext, 10, 0, 100), new OptionInt32Slider(OptionNames.FBLengthBasic, optContext, 30, 1, 300) { Unit = "px", }, new OptionInt32Slider(OptionNames.FBLengthVariation, optContext, 10, 0, 100) { Unit = "%", }, new OptionDoubleRotator(OptionNames.FBAngleBasic, optContext, 90) { Unit = "\u00B0", }, new OptionBooleanCheckBox(OptionNames.FBAddOppositeDirection, optContext), new OptionInt32Slider(OptionNames.FBAngleVariation, optContext, 10, 0, 100) { Unit = "%", }, new OptionEnumRadioButtons<FBCurvatureType>(OptionNames.FBCurvatureType, optContext), new OptionInt32Slider(OptionNames.FBCurvatureBasic, optContext, 10, 0, 100) { Unit = "%", }, new OptionInt32Slider(OptionNames.FBCurvatureVariation, optContext, 10, 0, 100) { Unit = "%", }, new OptionInt32Slider(OptionNames.FBCurvatureFrizz, optContext, 10, 0, 100) { Unit = "%", }, }, plus the translation file FBRepetitions.DisplayName=Density and Length of Lines FBRepetitions.Prefix=Density: FBLengthBasic.DisplayName= FBLengthBasic.Prefix=Basic Lenght: FBLengthVariation.DisplayName= FBLengthVariation.Prefix=Deviation: FBLengthVariation.LabelMin=Small FBLengthVariation.LabelMax=Large FBLengthVariation.Description=Hint: Large density or length values will increase the execution time of the effect a lot! FBAngleBasic.DisplayName=Direction of Lines FBAngleBasic.Prefix=Basic Angle: FBAngleVariation.DisplayName= FBAngleVariation.Prefix=Deviation: FBAngleVariation.LabelMin=Small FBAngleVariation.LabelMax=Large FBAddOppositeDirection.DisplayName= FBAddOppositeDirection.Prefix= FBAddOppositeDirection.Text=Add opposite direction FBCurvatureType.DisplayName=Curvature of Lines FBCurvatureType.Prefix=Type: FBCurvatureBasic.DisplayName= FBCurvatureBasic.Prefix=Curl: FBCurvatureVariation.DisplayName= FBCurvatureVariation.Prefix=Deviation: FBCurvatureVariation.LabelMin=Small FBCurvatureVariation.LabelMax=Large FBCurvatureFrizz.DisplayName= FBCurvatureFrizz.Prefix=Frizz:
  24. Red Ochre: You are quite often 'misusing' the DisplayName to add start and end labels. Is this a usual requirement to add labels to trackbars?
×
×
  • Create New...