Popular Content

Showing content with the highest reputation since 12/19/2018 in Posts

  1. 9 points
    Hello there, I'm David Tschumperlé, the main developer of G'MIC. First, I'd like to thanks @null54 for taking the time to port our G'MIC-Qt plug-in for Paint.Net. Second, I've read all your messages and indeed noticed that the 'Stylize' filter was painfully slow on Windows. We have investigated this issue these last days with people at pixls.us, and hopefully we should have found what was going on. We were using too much mutex locks/unlocks in the multi-threaded algorithm, which was slowing down everything. I'm working hard right now to fix this issue. I hope I will be able to post a pre-release tomorrow (Friday) with the fixes included. If you have any questions related to G'MIC, I'd be happy to answer (depending on the amount of free time I have ). Cheers. EDIT: The G'MIC-Qt plug-in is a product of the GREYC Laboratory, mainly done by Sébastien Fourey and myself, with the help of many contributors.
  2. 7 points
    (This is cross-posted from the Paint.NET blog ... I may get more discussion out of this over here on the forum though ) It's been a little over 9 months since I left Facebook, and since then I've been hard at work on Paint.NET. (There were two primary reasons for me leaving Facebook: 1) it was way too exhausting, which is also part of the reason I haven't been blogging much for several years, and 2) I really just wanted to focus on Paint.NET for awhile.) 2018 Looking back on 2018, a lot was accomplished! In the 4.0.20 update back in January I shipped a dark theme, which I originally didn't see the point of but now I can't imagine the app without it. After that there was mostly radio silence until I released 4.1 in September. That update had quite a lot of infrastructure changes in it, both in the low-level bowels of my COM interop system (long story…), and in the addition of GPU-powered effects (which was powered using Direct2D, which was dependent on the aforementioned COM stuff). Since then, the 4.1.1 through 4.1.5 updates have focused on fixing a bunch of bugs that have popped up (which has been frustrating), and improving performance (notably for effect loading at startup, and canvas rendering when zoomed out). 2019 What's next though? Well, I'll start by quoting a recent article over at HostingAdvice that I did a small interview for: After 10 years of working at Microsoft and several years at Facebook, Rick decided to focus exclusively on Paint.NET this year. “That means I’ve gone from having 20% of my time available to about 80%,” he said. “I’m going to be spending a lot of time preparing infrastructure for the next big wave of features going into Paint.NET.” To that end, Rick hopes to enhance the user interface with more attractive icons, allow users to install custom brushes, and introduce pen and pressure sensitivity for tablets. With that, let's start talking directly about what I'm planning and hoping to release in 2019: App Icons and High-DPI Paint.NET's UI is quite functional for high DPI systems without any of the layout problems or truncated text elements that have plagued Windows apps since, well, forever. However, that's no longer good enough in 2019. For starters, the app icons are all authored for 96 DPI (aka "100% scaling"), and look blurry at higher DPI settings. Upgrading all of that is a project I've just started working on, and is what the aforementioned article refers to as "more attractive icons." Beyond that, newer versions of Windows support dynamic scaling (changing the scaling without logging out and then in again), and per-monitor DPI. Right now if you change the system DPI while Paint.NET is open, it won't look very good. Similarly if you move the app over to a monitor with a different DPI setting. This also affects use of Remote Desktop where the remote system's DPI is different, and use of laptop docking stations when the external monitor's DPI is different. These all make using Paint.NET in modern scenarios rather clumsy and frustrating. For instance: when I use my laptop with a 4K screen to remote into my desktop with a 2K screen, it sucks that I have to restart Paint.NET so it doesn't look blurry. Windows gets a bad rep for having bad high-DPI scaling, and part of the responsibility for fixing that reputation lies with application developers like me. Refreshing the app icons is the next thing I'll be working on, and then I'll upgrade the infrastructure for dynamic DPI (probably over the course of several updates). Thankfully these projects seem to be the “final frontier” for High DPI: once they’re done we can finally bury the hatchet on High DPI bugs. .NET Core 3.0 Richard Lander's post earlier in the year about .NET Core 3.0 shipping with WinForms and WPF really made my day. The more recent announcement that both WinForms and WPF would be open sourced has fulfilled a long-time dream of mine. I can't wait to fork the ToolStrip classes and migrate them off of GDI+ (this should be a good performance win) It's clear that, in the long-term, Paint.NET needs to migrate over to .NET Core. That's where all of the improvements and bug fixes are being made, and it's obvious that the .NET Framework is now in maintenance mode. On the engineering side this is mostly a packaging and deployment puzzle of balancing download size amongst several other variables. My initial estimations shows that the download size for Paint.NET could balloon from ~7.5MB (today) to north of 40MB if .NET Core is packaged "locally". That's a big sticker shock … but it may just be necessary. And, for those who're interested: the move to .NET Core will finally enable a truly portable version of Paint.NET since .NET Core can just be bundled into the local app directory. I've been slowly moving towards "app local deployment" of dependencies anyway; e.g. for the v4.1 release I got fed up with the Visual C++ runtime's installation issues and moved them to be "app local". The security arguments no longer convince me that it's worth the massive hassles for both myself and end-users. The straw that broke the camel's back (so to speak) on this was when the Surface Go shipped with an incorrectly signed version of the Visual C++ runtimes which then prevented Paint.NET from loading at all (remember: the Surface Go runs Windows 10 "S" by default and can only run Store apps). Improved DDS support The DDS support in Paint.NET works well, but hasn't been updated to the newer DDS formats that have become more popular. Nicholas Hayes, aka "null54" on the forum, has written a plugin that provides better DDS support (forum link, and github link). This is a no-brainer for integration into Paint.NET so that everyone can benefit from these improvements (and without having to rename files to have a .dds2 extension, yuck!). Paint.NET is used a lot in the gaming biz, so this should help out a large audience of developers in this arena. Brushes and Pressure Sensitivity This is the big one. I've been wanting to get to this for years, and it's finally time to get it done. The first thing to happen is that Paint.NET needs an improved selection of built-in brush stamps (currently only "circle" is implemented). Second, custom brushes need to be supported without the use of a plugin. This will bring brushes up to the same level that Shapes is now at. Third, pen and pressure sensitivity is desperately needed and long overdue. I'll be posting more details when this project starts taking shape, and I'm hoping to start on it this summer. (Keep in mind, however, that pressure sensitivity will require at least Windows 8 or maybe 10: the APIs for this do not exist on Windows 7.) Expanded Plugin System(s) I really wanted to ship 4.1.2 with GPU support for effect plugins. However, a high-priority security vulnerability forced me to shelve that at the last minute. Now that I've had more time to think about this, I'd like to revamp the effect plugin system further -- it hasn't seen much love in the last decade. Providing access to GPU acceleration and Direct2D is an obvious next step, but I also have an opportunity to clean things up in this area. Effects can't easily combine (or compose) with other effects, and this makes it really hard to do arbitrarily complex things with them. It's also difficult to add new functionality to the effect system without accidentally breaking other parts of it. In addition, it's been way overdue for Paint.NET to support more plugin types beyond effects and file types. Plugins should be able to access more than the current layer, and even be able to implement whole-image transforms, or to create a new image (whether from scratch or based on another image that's already open). You can't even write a rescaling plugin for Paint.NET right now! I don't have concrete plans for specifically what I'll be adding here, or when, but it's high up on the priority list. And in the long term, I would still like to add support for tool plugins (something of a holy grail). Until next time … This roadmap for 2019 is ambitious, but I think I should finally have enough time to actually realize most of it. Hopefully I’ll be able to blog more in the coming year now that I’ve got more time and energy for it. Paint.NET is only going to get better as time goes on, and I'd really like to thank everyone for all of their support in making this transition to full-time self-employment possible for me. Thanks for the donations, thanks for buying the Windows Store app, thanks for the crash reports, thanks for the feature requests, and thanks for all of the fish!
  3. 7 points
    Thank you very much @ScrapbookWithPDN 🎅 I was in the mood for jewelry, as it's that time of the year for presents
  4. 7 points
    I made a leather dice bag to hold all my die. It has this neat leather thong which secures the opening flap and also creates the teardrop shape when closed. Holds dozens of die. I found the coffee colored d6 cheap on Aliexpress - they are my current favorite.
  5. 7 points
    The Eruption of Olympus Mons ( the volcano, on Mars, 25 km high, the biggest in the solar system) in 5.273645 BC; taken by Ned Kelly when he strayed into a rift in the space time continuum on his now legendary return journey from Merica in 1878 when he received the Recycled Technology award for his Personal Protective Equipment.
  6. 6 points
    I thought some of you would be interested to see @Red ochre's amazing art work He recently made his own website with all of his art, including sculptures and beautiful works of delicate ornaments. http://johnrobbinsart.com/index.html
  7. 6 points
    This is a plugin which helps you to create symmetric mandalas and mirrored pictures. It takes the upper right triangle(as shown in the first picture) as an input and mirrors it to the other ones. It only works for square images (image width = image height) currently! Download newest version here: Mandala Creator.zip To install just extract the zip and run the installer. It will be installed under effects in the subfolder Artistic. Example for 4 Mirror Option Results If you enjoyed this plugin and would like to support me, click this button: Thank you! Older Versions: Mandala Creator.zip (Version 1.0)
  8. 6 points
    A very Merry Christmas to Everyone here on the forum. I wish you a Happy Holiday and a wonderful New Year. Don't eat too much and take care when riding your sleighs Inspired by a recent trip to New York during a snow storm, I made this from scratch in Paint.net. Hope it passes the muster test
  9. 5 points
    This is a draught for a work thing. Not realy completed but I gotta get it out there else it wont be new year still. I work in Nimbin, in one of my hats. Its a house restoration project by the Neighbourhood Centre. I ripped the lines from a photo but me & Pdn did the rest. Thanks for the reps Woodsy. I didn't mean to be disparaging mate. Wood Butcher doesn't have the same negative connotation over here. Must be because we have no bad carpenters in Australia. 🙂
  10. 5 points
    I wish all of you a Merry Christmas and a Happy New Year 2019. Thank you very much for the many great plugins, the corresponding explanations and especially for the great help of many members in this forum. Thanks for that. Greetings from Hamburg/Germany
  11. 4 points
    This is my best friend I've ever had - Nico, a Perro de Aqua Espaniol :-))))
  12. 4 points
    Dear @ Pixey! 👍 Thank you very much for your video. That helped me a lot. With these two pictures the result came out.
  13. 4 points
    Alright! As per my recent blog post ( https://blog.getpaint.net/2018/12/26/whats-next-for-paint-net-in-2019/ , which is crossposted here on the forum too: https://forums.getpaint.net/topic/113608-whats-next-for-paintnet-in-2019-x-post-from-blog/ ), I've finally started working on this for inclusion in the next release I've paid for a license at https://Icons8.com, as they have a ton of Office-style icons that really match, well, Office. And it's not expensive at all. I can use these and @Zagna's SVGs to cover just about everything. There's a few important icons that Icons8 doesn't have that Zagna does have, and I think the whole set is basically there. The SVGs will be the "source of truth" but they will not ship with the app itself. Instead, I'll use a script to convert them to PNGs of the appropriate sizes and then the PNGs will be included. Parsing and rendering SVGs is absolutely not something that an app like Paint.NET should be doing at runtime -- it's way too expensive to do all that vector rendering. Once I have things set up for 96 DPI and 192 DPI, I can also easily fill in any other scaling levels that are important such as 120, 144, etc. At that point it'll just be a matter of adding a few extra commands to some scripts. I'm currently writing up an SVG-to-PNG converter that uses Direct2D. There are already solutions available for this but it's also a chance for me to learn how to work with SVG in Direct2D -- even if that means learning that SVG support in Direct2D is broken or incomplete, which is definitely possible.
  14. 4 points
    1) put your car image on the bottom layer. 2) put your style on the top layer. 3) select the bottom layer and hit Ctrl+A, Ctrl+C and Ctrl+D 4) run G'mic and switch to use bottom layer instead of top layer. 5) hit OK button. It should Finnish around 5 min with those small images. The bottom layer will be replaced with the new image created. OK, here's one I did earlier. I made the Style layer using a Lightning brush;
  15. 4 points
    Hi, everyone. I hope I'm doing this right. Merry Christmas. This is a gift to anyone who would like it. The image showing is just a sample with two photos in it. It's an 8"x10" (easy for home printing, if anyone wanted to) layout that you put your photos behind. Just slip two photos behind the two frames. It's just a .png image and also 300 dpi, so to use it, just drag it down to a 96 resolution canvas size if you want, or print it out in 300 resolution. Either one. There's an additional text that says "Ya Filthy Animal", from Home Alone. It's in the layer .pdn files. You can also put whatever names or last name or words on the car, if you use it. I'm sure some of you can add a lot more fun to the layout because of your awesome PDN skills and creativity. Oh, and, made entirely using Paint.Net, of course. 😁 Click here for the 8x10" .png single image download For anyone wanting the layers, I saved them, also. I think there are 16 layers. You can use them, move them around, do your own thing with it, add to it, etc. Here's the zip file for the .pdn layer files. Everyone be safe and have peace. Sincerely, Lydia
  16. 4 points
  17. 4 points
    Here's my annual Christmas wallpaper. This year's theme is called "A Homespun Christmas", incorporating some of my 'sewing' techniques. Please enjoy. The image is clickable for a full-size download. Merry Christmas everyone!
  18. 4 points
  19. 4 points
  20. 4 points
    Introduction As G'MIC is now available for PDN, there is now easily accessible alternative to C# for developing filters. What exactly would be the benefit of turning a PDN filter to a G'MIC filter? Well, here's some few benefits to some users of PDN and especially for those that use multiple applications that use G'MIC. G'MIC are accessible to the following program - Paint.NET, Krita, GIMP, Natron, Blender . This would mean that you could continue your project elsewhere while still having access to G'MIC filters. Better filter preservation. To explain this in a easier way, G'MIC by itself is likely going to be accessible for a long time to go, and many filters can also be preserved. Individual filters tend to have a big issue of being lost permanently requiring users to remake filters again or to restore it from a backup. Just look at the dead links due to the forum upgrade in some threads at plugins section of this forum to see what I mean. And if G'MIC sources disappear on the main website, there's likely going to be a person who do have the source code for it and instructions to compile G'MIC for respective softwares, and precompiled versions would also exist elsewhere. It's an alternative to C# with many syntaxs and option. You would have to read the 400 page documentation for example of G'MIC scripting, and look at G'MIC reference. It even support for loop. For some, this can be beneficial as it can be easier to learn for some users, and G'MIC has a big advantages of being able to make the GUI alongside with $x where x is the variable number being directly connected to the GUI. The downside is that for those who do not want people to have source code to their filter or want to allow others to modify their filter will have to use the standard #C instead and not even bother with this tutorial at all. You have to share your code to the world if you want your G'MIC filter to be accessible to others, no if and no but here unless maybe you're a developer of proprietary programs (I think the license changed to allow proprietary programs to do so, but I'm not sure, hence maybe.). That being said, those are the few reasons why you would want to turn a PDN filter to a G'MIC filter. Resources https://gmic.eu/reference.shtml - This link refers to everything or almost everything about G'MIC scripting with examples https://gmic.eu/gmic_reference.pdf - 458 pages of examples and some clarifications of scripting Tutorial This tutorial is going to be about transforming basic filter to a G'MIC filter. More advanced ones are possible, but that would require some good amount of understanding of G'MIC scripting, and its syntax. Spaces are critical here. For basic filter and possibly advanced ones (I'm not sure the extent this can be used with code[local], you can use code[local] filter to test your script first. This tutorial uses Code[Local] first. Note 1 - [x] are G'MIC layers Note 2 - $x are G'MIC variables connected - Part 1 : Preparation 1. Open Paint.NET/Krita/GIMP with G'MIC installed. Krita and GIMP supports multiple layer output, so you can see how your code works by clicking applies. The [0] is the currently selected, and [n] or [-1] are basically anything below the [0] layer. See debug info is crucial to diagnosing how your code will work within code[local] 2. Copy and Paste a image to be used for testing 3. Open G'MIC. G'MIC can be located by Effect > Advanced > G'MIC-QT 4. Go to Custom Code[Local] filter 5. Go to Part 2 - Part 2 : Making the over-blur script and testing it 1. Read about the PDN effect you are going to replicate [Yes, so you can make a theory on how to replicate the G'MIC filter in theory 2. For overblur, it seems that it uses a blur filter first, and generate the difference between the blur image and the original image. Overblur add the sum of the difference with the blur result multiplied by a variable and the original. Overblur (final_image) = Original + (Blur_Variable - Original) * V1 . That means your filter would need at least 2 tabs on its GUI. More on that later. 3. To create a layer within G'MIC with filter applied within code[local] -> Type in +{Effect}[layer_number] x...z where x...z are all numbers of variables you are going to use. See update24xx.gmic on the appdata folder to see effect. $1.....$inf are placement of each variables that are connected the GUI of the filter they're respective to most of the time. 4. Finally, type in blend[0,1] add to see the overblur effect within the preview. Debug info is crucial for PDN as you cannot output multiple layers in there. - Part 3 : Making the G'MIC code Note: The code needs more work, but this is more of a starter code. Completing it and describing it will just more efforts than I want to do. If you look at update24xx.gmic within Kate text editor, you'd note how the GUI works just by looking at the code of the filter and comparing it with the GUI windows. All notes, and separators are ignored. $x correspond with adjustable number variables. Everything must start with #@gui. All the other are just GUI development. Okay, now to make the filter for real. 1. Open Kate text editor (I'm not too sure on Notepad++ when copy and paste into .gmic found at appdata, haven't tried it.) 2. Copy and paste the code[local] code within Kate. 3. Convert number to variables. The first variable should be $1, and the second variable should $2. So, it should look like this in Kate text editor. You will copy and paste the final code that to updatexxx.gmic later on, but not now. +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add There, that means you should have at least 2 sliding tabs on the GUI. 4. Type in $@gui _ This should go into top of the code. 5. Now, type in #@gui {FilterName}: {Effect_Command_Name}, {Effect_Command_Name}_preview(0) where {Effect_Command_Name} is your chosen name for this effect. To clarify, here's a example of what I mean. #@gui Overblur: overblur, _overblur_preview(0) That should go on second half top of the code. Every other GUI part of the code here are below this. 6. You can add texts to it by typing #@gui : note = note ("") ; where anything between "" is your text that you want to leave info for users of your filter about. 7. You can add separator by adding #@gui : sep = separator() 8. We are going to use 2 float variable. So this means you should add 2 copies of #@gui : {Name of Variable} = float (default, min, max) below the above line referenced in this tutorial. 9. You can add preview by copy and pasting one of the preview type code. That should go into the second bottom line of the gui section. 10. If you want to credit yourself, copy and paste one the existing credit note and replace it with the correct name and date. 11. After you made your GUI. You can continue on the bottom portion of the code. The code so far should look like this. #@gui _ #@gui Overblur: overblur, _overblur_preview(0) #@gui : note = note("Overblur the image") #@gui : sep = separator() #@gui : Blur Factor = float(1,.1,10) #@gui : Multiply Factor = float (1,.1,10) #@gui : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate top","Duplicate left","Duplicate bottom","Duplicate right","Duplicate horizontal","Duplicate vertical","Checkered","Checkered inverse") #@gui : sep = separator(), note = note("<small>Author : <i>Reptorian</i> Created by: <i>2018/12/21</i>.</small>") +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add 12. Add overblur: above the +blur[0]$1 13. Add _overblur_preview: below -blend[0,1] add It should look like this on the bottom portion of the code: overblur: +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add _overblur_preview: 14. For ease, I'd just copy and paste this below preview: gui_split_preview "overblur ${1--2}", $-1 By this point, you are done with the code. It should look like this. #@gui _ #@gui Overblur: overblur, _overblur_preview(0) #@gui : note = note("Overblur the image") #@gui : sep = separator() #@gui : Blur Factor = float(1,.1,10) #@gui : Multiply Factor = float (1,.1,10) #@gui : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate top","Duplicate left","Duplicate bottom","Duplicate right","Duplicate horizontal","Duplicate vertical","Checkered","Checkered inverse") #@gui : sep = separator(), note = note("<small>Author : <i>Reptorian</i> Created by: <i>2018/12/21</i>.</small>") overblur: +blur[0] $1 +blend[0,1] difference mul[2] $2 remove[1] -blend[0,1] add _overblur_preview: gui_split_preview "overblur ${1--2}", $-1 Copy and paste anywhere below Testing within updatexxxx.gmic - Part 4 : See your work 1. Open Paint.NET 2. Load G'MIC-QT 3. Search Overblur 4. Click it. If all goes well, it seem that it should work. Now the basics should be learned.
  21. 3 points
    This plugin allows G'MIC-Qt to be used as a Paint.NET Effect. Compatibility: 4.1.x Menu location: Effects > Advanced > G'MIC-Qt Note that some filters may not render correctly in Paint.NET. For example, if the filter produces an image larger than the current canvas size the image will be cropped when it is displayed by Paint.NET. Filters that require top and bottom layers can be used by placing the bottom layer on the clipboard, the currently selected layer will be used as the top layer. The clipboard layer must have the same size as the main image. Some icons are from or based on those in the Fugue icon set by Yusuke Kamiyamane. To install place Gmic.dll and the gmic folder in the Paint.NET Effects folder. G'MIC-Qt should automatically download the filters when the plugin is first launched. Download: If you have a 64-bit OS the win64 download will provide better performance, if you are unsure of your OS type use the win32 download it will work on both 32-bit and 64-bit systems. Gmic_win32.zip Gmic_win64.zip Source Code: https://github.com/0xC0000054/pdn-gmic https://github.com/0xC0000054/gmic-qt
  22. 3 points
  23. 3 points
    Yuuuck...sorry about that. It's not easy for people who are not here as often, to get everything right. That's why I hesitate to try to be part of certain things and I don't want to muddle things up. I do want to thank you for keeping the forum organized. I know it's a big job @Pixey. We must truly have far more appreciation for what @Ego Eram Reputo , @BoltBait (a founder?) & has been doing around here for a long time.... @toe_head2001, too. Running this forum properly is a big job and it's likely a thankless job for you Admin. I'm sure people don't realize just how much dedication, time and effort goes into this, nor the "why" of it, which is a bigger picture. It's a huge important job! So, thank you, again, Pixey, and the rest of you who do this. @lynxster4 you're here, a lot, too, helping out and contributing. I'm not sure if you're an admin but you do a lot of good here, too and help others a lot, too. So, thank you, also.
  24. 3 points
  25. 3 points