Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by KrisVDM

  1. The plugins are embedded in the installer uncompressed, as the installer itself is compressed in a zip file anyway. Secondly, if I put them in compressed, the installer needs to have decompression logic, which makes it bigger (and slower) again. Finally, even uncompressed, some programs such as .NET Reflector can extract them, if you really want to do that.
  2. I can understand that, but do know I'm not sending any information home. So in a way, it's more like "listening to the radio". To developers, it's a nightmare. More work, more testing, difficult testing actually. The reason why anyone, be it a plug-in developer or any other developer or software company, writes updaters, is that it helps users getting better software more quickly. Other have mentioned the anoyance, and I've made changes to address that. Unfortunately, they will have an effect only after a next update. As for the bugs, one reason to put an update out and getting it into users hands, is to fix bugs. That assumes of course that the update mechanism itself is simple (as it is in my case, in fact it's not updating but merely notifying) and properly tested (as I hope it is...).
  3. The dialog asks "Do you want to download them now?" If you say yes, it opens the page where you can go and download them, so that you can install them later. In other words, if you close the download page, nothing will have happened. Im sorry about the confusion, I hope this clarifies things. Can you provide some more information? Feel free to pm me if you prefer that.
  4. I've posted a new update, version 3.5.1, that does the check only when an effect is actually run. Of course, this modification doesn't change the old versions that are already out there.I haven't triggered the updater in the old versions, so those that have already installed 3.5.0 will not be notified that 3.5.1 is available.
  5. You must be using a very old version of these plug-ins then, or you don't have them installed at all. Feel free to try the new version.
  6. Absolutely not, on the contrary. I'm happy to hear you like the plug-ins.In fact, you do have a point. Unfortunately, it's a little late to do something about the frequency of the popup for now; the code for the update check has been out in the wild for over a year. But I will go more easy on the reminders after the next update.
  7. Yes, with the current code the pop-up will appear until you install the new version (or remove the old one). And indeed, the new version features an installer. Just double-click it. It will ask you which effects you want to install. It then just copies the required dll's into the correct folder. It makes no other modifications to your system and there is no spyware. BTW, when I uploaded the file, it was virus free. But as with anything you download from the internet, you should check it before you run it. You have a point when you say I should leave people the choice. And in a way I do: you are free to remove my effects if you want to. But I also noticed that I get a lot of questions. Just scan through this thread here. Many questions are about bugs that have long been fixed, or incompatibilities of old versions with more recent versions of Paint.NET. So I thought it would help people if I'd let them know there is a new version. Most people don't check that when they have a problem. Also, the new version is actually better than the previous one (faster, wider range of parameter values, etc.) A lot of other questions are about how to install the dll's. To help those people, I created the installer. In short: I hope and believe this wil benefit a lot of my users. I'm sorry if it offended you. One final question, out of curiosity. You don't seem to have a problem with running arbitrary code that you download from the internet in full trust on you machine, since that's what you do when you install third-party effects. Why do you have a problem with running an installer? Was it the "I need administrative rights" dialog that scared you? If you have an operating system that gives you that dialog, you also get that question when you install effects manually... And you get it when you install Paint.NET. So what makes this one different?
  8. Not true. The MouseWheel event reports descrete, evenly spaced notches, one event per notch. It is up to the application to decide what to do with each event. For example, MS Word changes the zoom factor by a nominal 10% (e.g. 150% becomes 160%) per event.
  9. another minor thing: if you undo all changes to a picture, it's effectively unchanged. But pdn sees it as having changes, and asks to save it.
  10. Just a minor thing: if you wiew a picture at 100%, then zoon in using ctrl + the mouse wheel, then zoom out again using the same, you never get to 100% again.
  11. There you have it, the code is already written! Should be trivial to include now. Unless you want to revisit all places where ColorHsv is used... But be careful, as that would be a breaking change to plugins. I suppose a ColorHsv2 or something could solve that.Anyway, thanks for looking into this.
  12. I do have Photoshop, and DPP (the RAW editing software that comes with Canon cameras, you can download it from their site too - it's free). I use them, mostly DPP, for those photo's I shot in RAW, and today that's a minority. I tend to prefer and use Paint.NET for all JPEG work, because it's faster and easier to use. And if needed, I can program my own custom adjustment in minutes, which I cannot with the others. And then there's all the non-photo stuff too.I guess what I'm saying is, is that I won't stop using Paint.NET any time soon, whether you work on that saturation thing or not.
  13. FYI, this step can be simplified significantly with my Drop Shadow effect.
  14. If you use floating point, indeed. But not if you add bytes together in a long (ints actually, the sum of squared bytes). In fact, in that case there is no loss of precision, and it will be infinitely more numerically stable than what you do now. (In fact, if you were to accumulate a billion floats in a double, it would still be numerically stable.) Oh yes it will make a big difference, believe me. First of all, not every image is 50 MB; most I use are a lot smaller. In fact, most images I use are smaller than my L2 cache. Secondly, if you reduce memory usage by a factor x, you reduce the number of cache misses by a factor x too (in this case). I wouldn't count on prefetching too much; since you're actually just scanning linearly through memory, the memory bandwith can become the bottleneck. Have you considered what happens when you start paging? Or if you run into the limits of a 32bit memory space?Also, don't forget you're calculating a distance here. Integer addition and multiplication may be faster than floating point on some CPU's. A 100-1000 what? Seriously, you don't need the color values to be floats, and the scaled coordinates are just two multiplications (one for x and one for y). You're trading two multiplications for a memory problem.Oh, and BTW, you're absolutely correct that you need to cluster on six dimensions, not four. It will, but I would suggest you get the basic algorithm correct first, before you make it iterative. This is one of those things that I did not consider _low_ hanging fruit. Big fruit, but hanging high.
  15. That's exactly what I mean. The quantization is visible after one run though, it just becomes very obvious after multiple runs. Can it not be fixed, now that 3.5 is stabilizing? This is one of those things that make me consider shooting all photo's in RAW and using Digital Photo Professional...
  16. Something seems wrong with the accuracy of the Hue/Saturation adjustment. Take any photograph, and apply the adjustment about 6 times, with parameters Hue = 0, Saturation = 200, Lightness = 0. You’ll notice that only primary and secondary colors remain, i.e. colors where r, g and b are either 0 or 255. I would expect the full range of hues to remain; only saturation should have increased.
  17. Hi Neil,I had a quick look at the code, and it seems that there is plenty of room for optimization. Here's a few tips, for your information: 1. You are using type Datum for two different things, one is input, the other is an accumulator for the means. Separate them. Actually, you don't need a type for an input Datum. You only need one bit to store whether the pixel is selected or not. You could use a single byte to store this (or use bitwise arthmetic to pack 32 pixels in a single uint). The actual color can be read from the source surface. The scaled location can be calculated on the fly, as it is just one floating point multiplication for each coordinate dimension. Calculate the multiplication factor just once for each dimension though, not for every pixel as you do now. Whatever you do, do not use a class for Datum, use a struct instead. 2. Get rid of Datum.UpdateAverage. You should just add vectors together, and divide by the count just once after adding. UpdateCentroids is already calculating the count for each mean, but not using this count afterwards. 3. R, G, B and A are bytes. To calculate the mean, you can add them in a long. Don't use floats to add bytes together. Certainly don't use floats to store your input colors as you do now. 4. SquaredDistance will be much faster if R, G, B and A are just bytes. Create a function SquaredDistance that takes the two colors, and the two int x and int y coordinates as input. Calculate the scaled location on the fly as described above. 5. Assignments is an int[]. If you limit the number of clusters to 256, you can use a byte[]. If you feel that's not enough, consider a ushort[]. Again less memory. Bringing down the amount of memory used will also improve cache efficiency, and therefore speed. This is just the low-hanging fruit. I hope you appreciate these comments. They're meant to help you, and I hope they do.
  18. Can you try it on a a released OS? Are you sure that the delay disappears when you delete (or move) the dlls from the effects folder? So far, I have never seen such behavior, and I have tested on XP 32 bit, Vista 32 bit and Windows 7 64 bit. Anyone else seen this?
  19. It's in the same zip file with the other dll's, and it should be placed in the same destination directory.
  20. I haven't tested the effects under the alpha so far. I do intend to update all effects as soon as a 3.5 beta is available. In the meantime, you might consider reporting this to Rick too. Edit: Turns out this was a problem with version 3.1 of my effects. Version 3.3 does not have that problem. If you experience the same problem, I suggest you upgrade to the latest version of my effects. In fact, I suggest you upgrade even if you don't have the problem. The new version has more features and is a lot faster.
  21. Several people asked for this, so I finally decided to implement it. Version 3.3 of the Drop Shadow effect now has a shadow opacity setting. I've also optimized the effect significantly. On big images with relatively small objects, the effect is now a lot faster, especially when using large widening and blur values. Makes sense, so did that too. Download from my download page.
  22. Thanks! You must be the first person to actually look at that source code. I love that you refer to it as "beautiful": I guess some people use paint.Net to create beatiful images, I used it to try to create beatiful code ;-).
  • Create New...