Rick Brewster

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Rick Brewster

  1. Define "latest update" ... 4.2.10, or 4.2.11 alpha? Also, did you follow my suggestion from the last time you were here? Nothing's changed. There's nothing for me to do here, it's all on Discord. Talk to them. Or, something is wrong with your system. This is not a Paint.NET issue or bug.
  2. If you need to reduce an image to an 8-bit color palette, you can also save it to an 8-bit PNG and then re-open it. However, once reopened the image is converted back to 32-bit BGRA (in-memory that is, the file on disk isn't affected), even if only 256 colors are actually used. So any modifications may step outside of those 256 colors and adversely affect the image once it's saved again. You can't constrain editing to 8-bits, in other words. I've filed a bug/task to look into expanding the Colors window to be able to work with 256 colors. However, it will probably be awhile. There's a lot of other stuff to do that's much higher on the priority list!
  3. I'm pretty sure it's OK to allow 3rd-party plugins that are GPL licensed. Otherwise you wouldn't be able to have GPL plugins for, say, Photoshop. However, there couldn't be anything in the app that encourages you to go and get that plugin (from what I understand). So, it's fine if you develop a GPL-licensed plugin for whatever file type, host the source on (e.g.) GitHub, and then publish it here on the forum. However, it's not okay if there's then a stub in the app for that file type that, when the user attempts to use it, causes a pop-up that says "Hey here's where you go and get the plugin for this file type: [link to that GPL plugin]." The best I think I can do is add some way for a plugin to override the built-in HEIC file type -- either through the hidden setting similar to what the AVIF beta plugin is using (not great user experience), or through the IFileTypeHost interface.
  4. If it were LGPL then a plugin could be made as open source and bundled with the app. But, GPLv2 is not going to permit that. What a shame.
  5. Also, @null54 has a beta version of an AVIF plugin that supports saving. We're hoping to bundle it with the app sometime soon.
  6. Someone would need to write a plugin for this. I can't really bundle things with the app because there are licensing issues and royalties. This stuff ain't free, in other words. Because charging money is a great way to ensure your new codec gets adopted, right? 🤦‍♂️🤦‍♀️
  7. Oh, and this is the encoder details. Only supports heic/heif
  8. I'm pretty sure it uses HEVC when saving. The HEIF codec doesn't have any configuration settings -- and I mean at the code level, there aren't any that Microsoft lets me configure. The codec does support *.avci but I don't know what they specifically mean by that. I'm not really certain what the HEIF codec actually supports since it's pretty clear they phoned it in. You could try renaming an *.avci file to *.heic and see if Paint.NET (or even Paint) will load it though.
  9. Why not use Copy Selection and Paste Selection? Also, if you're asking about implementing a plugin then your question goes into the Plugin Developer's Central. I'm moving your post.
  10. My proposal is this: if you need url decoding, which is where all those %'s come from, then you can prefix the file name with url: . This has the advantage of using a character that isn't valid for file names (colon). The remainder of the parameter will be url decoded via WebUtility.UrlDecode. It will still be considered one command-line argument, so quotation marks would go around the whole thing, not just the filename after the url:. However, since spaces should turn into %20, I don't think quotes would be needed. I can put this into the next 4.2.11 build that I"ll be putting out ... probably tomorrow.
  11. I'm not worried about the security of your scenario (although I'm not sure I fully understand all of it), since it seems to all be done on the local system. But, what if a web page linked to a PDN file that had some maliciously crafted image file which took advantage of a bug in a codec that resulted in elevation of privilege? It's possible, it can happen, it has happened (AFAIK). Image codecs are a known bug farm, and probably always will be. They're like wet markets for this stuff. The point being, it's just crucial to be EXTREMELY careful here. The problem with unescaping the %XY stuff is that first the app has to try to open the image without any unescaping. Then, if that fails, it needs to unescape and then try loading again. That's actually a pretty big change to the flow of how all that code works. And that's code which has not changed much in a long time, partly because it really hasn't needed to: it works! The security issue is also legitimate, because if an attacker knows that you're sending over a filename that requires unescaping, they can plant a file with the escaped file name (e.g., literally called This%20Has%20Spaces.jpg -- remember, % is a valid filename character!) and it will be loaded instead of the intended file ("This Has Spaces.jpg"). There needs to be a way to unambiguously specify the filename. I'm open to suggestions. It's easy enough to change the error dialogs to include file names and exception details... I think. I'd have to double check. Not having the file name in there has long been something I've thought should be included but I haven't taken the time to do it. 4.2.11 is going out soon, this may be easy to sneak in. But, protocol stuff has proven to be super bi***y to get right -- like some whack-a-mole game, you kill 1 bug and 1 more immediately pops up. However, I don't think any changes here are actually specific to protocol handling ... although maybe the registry entries should just include a /protocol switch so that the app actually knows it's being launched via protocol.
  12. Seems interesting, I might check it out at some point ... always did kinda dislike the way pencil drawing turns out
  13. You literally just press Enter I'm not adding a bunch of extra stuff so you can avoid pressing Enter Just because a request comes up again and again doesn't mean it's a good idea
  14. Don't ever ever ever ever ever ever ever do that. Use the provided uninstaller. If you just go in and start deleting stuff, you will break all sorts of things. Don't do that.
  15. Updated to build 7419. See amended text at the top of this thread, or the blog post.
  16. @Basil Baaziz, this thread is 6 years old 🤦‍♂️ And even then, the original discussion is 12 years old. Someone already necro-posted in 2014, I don't know why you're doing it again in 2020. This thread is dead. Don't do that. Please go read the rules. Closed
  17. Probably means like this The auto-detect code is a pain, but extremely useful, I can probably find a way to make it available for plugin use
  18. I have no idea what you're asking for. Way too vague. No idea, really, we're not psychic. You have to provide some actual details. Closing this thread ... 🤦‍♂️
  19. I don't understand either -- the Pencil is always 1px, it doesn't have a brush width setting. It's meant for pixel drawing.