phrebh
Members-
Posts
51 -
Joined
-
Last visited
Everything posted by phrebh
-
Paint.Net VS Jasc Paint Shop Pro 9
phrebh replied to Geertjee's topic in Paint.NET Discussion and Questions
I disagree. While I like PDN much better than GIMP, it is still trying to play catch-up to PSP. Most people on these boards seem to consider PDN more of a replacement for PhotoShop, but PS is lousy for image generation, so they aren't really even in the same class. For doing raster graphics from a blank canvas, PSP is closer to PDN than PS ever could be. I'll admit that I plan on sticking with PDN primarily because it's free. Basically, it is close enough to what I want that I don't feel the need to spend money on PSP, but it is still a work in progress, and until some of the basic functionality that we've all seen people ask about (e.g. a proper smudge tool, selection shrink/grow, etc.) is in place, PDN cannot hope to take the place of PSP if cost isn't an issue. The problem as I see it is that you are judging it based on your knowledge of how to use PDN, rather than on its own merits. I did the same thing with PDN when I switched to it from PSP. But I have since been able to step back and see that PDN really is a nice piece of software, even thought it isn't everything I'm looking for. I think if you could try to be more objective, you'll realize that for what it offers, PSP is also a great piece of software and a bargain at $100. --End Commercial-- :oops: -
You do realize that the wind you just felt on your hair was that joke zooming over you, right? Nice job on the mockup!
-
Have you tried just using Wine? I was thinking about testing it out, but I haven't got around to it.
-
It's nice and clean, the way an interface for a small device should be. Here are some screen captures of the same page of my website. Each one is shows a different skin via a user-selected style. These are all live and you can check them out in greater detail at my site (but why would you want to?). Note: the default style was done in PSP, although some of the images have been edited in PDN.
-
Image Umbrella: Image Modification/Manipulation
phrebh replied to david.atwell's topic in The Pictorium
That's awesome! -
You weren't supposed to notice that.
-
Multi Color Gradient v3.0 (May 17, 2018)
phrebh replied to romein's topic in Plugins - Publishing ONLY!
Yet another PSP function missing from PDN is added as an Effect. Thanks! -
That's cool, janettsue! It looks like part of an art deco ad from the '20s or '30s. Have a bolt:
-
Image Umbrella: Image Modification/Manipulation
phrebh replied to david.atwell's topic in The Pictorium
Since I got my new computer I haven't bothered to put up a custom background, but reading drew's How to Make a Night-time Space Background tutorial gave me an idea on changing up XP's Bliss.bmp for the nighttime. -
[LAOTW #3] Fire and Ice - Maxpower wins!
phrebh replied to Mike Ryan's topic in Paint.NET Discussion and Questions
No stock photos here, either, but a nod goes to Tom Jackson for his fire tutorial. -
I am trying to write an effect that will average the colors of every pixel in the image/selection and fill the image/selection with that color. I've gotten amazingly close considering I've never done any C# programming before last week, but I've run into problem of the regions used for multi-threading the rendering. Right now I get a series of stripes representing the average color for each rendering region and I cannot figure out how to get the entire image/selection to work. As you can see in the code, I tried to use a "dreaded" global class, but this doesn't do anything for me, whether I use CodeLab or compile it in VSE. The other thought I had was that if I could work on an invisible canvas, I could do the first pass, turn it 90 degrees and run a second pass to get the final value (which is basically the workaround I have used to get what I needed). Any help (or original sarcasm) will be greatly appreciated. [EDIT] Hidden Content: This is the CodeLab code: static class GlobalClass { private static ColorBgra m_globalVar; public static ColorBgra AverageColor { get { return m_globalVar; } set { m_globalVar = value; } } } // Based on Rik Hemsley's code posted on the org.kde.kde-core-devel list. ColorBgra average(ColorBgra fg, ColorBgra bg) { const double d0 = (double)256; const double d1 = 0.2979; const double d2 = 0.5866; const double d3 = 0.1145; const double d4 = -0.1687; const double d5 = 0.3312; const double d6 = 0.5000; const double d7 = 0.4183; const double d8 = 0.0816; const double d9 = 1.4022; const double d10 = 0.3456; const double d11 = 0.7145; const double d12 = 1.7710; const double mix = 0.5; double y, cb, cr, y0, cb0, cr0, y1, cb1, cr1; double r0, g0, b0, r1, g1, b1; ColorBgra ret = fg; r0 = (double)fg.R / d0; g0 = (double)fg.G / d0; b0 = (double)fg.B / d0; r1 = (double)bg.R / d0; g1 = (double)bg.G / d0; b1 = (double)bg.B / d0; y0 = d1 * r0 + d2 * g0 + d3 * b0; cb0 = d4 * r0 - d5 * g0 + d6 * b0; cr0 = d6 * r0 - d7 * g0 - d8 * b0; y1 = d1 * r1 + d2 * g1 + d3 * b1; cb1 = d4 * r1 - d5 * g1 + d6 * b1; cr1 = d6 * r1 - d7 * g1 - d8 * b1; y = y0 + mix * (y1 - y0 ); cb = cb0 + mix * (cb1 - cb0); cr = cr0 + mix * (cr1 - cr0); ret.R = (byte)(d0 * (y + d9 * cr)); ret.G = (byte)(d0 * (y - d10 * cb - d11 * cr)); ret.B = (byte)(d0 * (y + d12 * cb)); ret.A = (byte)255; // always set to no transparency to make the result visible return ret; } void Render(Surface dst, Surface src, Rectangle rect) { // The first time render is run we set the AverageColor so we have our first // parameter for the first time we call the averager function if (GlobalClass.AverageColor == null) { GlobalClass.AverageColor = src[0, 0]; } PdnRegion selectionRegion = EnvironmentParameters.GetSelection(src.Bounds); ColorBgra CurrentPixel; for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { if (selectionRegion.IsVisible(x, y)) { CurrentPixel = src[x,y]; GlobalClass.AverageColor = average(GlobalClass.AverageColor, CurrentPixel); dst[x,y] = CurrentPixel; } } } // fill out selection with average color for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { if (selectionRegion.IsVisible(x, y)) { dst[x,y] = GlobalClass.AverageColor; } } } } p.s. I wouldn't have even understood anything I wrote above even a week ago without the great help of people on the forums and the openness of effects writers. Thanks, all!
-
That's a cool effect, but it makes him look like he's wearing a tutu.
-
Worldnewser, that's pretty sweet, but I don't envy you trying to find a font color to use with it.
-
Image Umbrella: Signatures, Avatars, Logos & Text
phrebh replied to david.atwell's topic in The Pictorium
I have no idea why this is my SIG. It has little to do with me. but I did want to get around from all of the SF-style ones (which are cool, but ubiquitous). Plus, I wanted to see if I could get a good desert effect. -
I grew up knowing A&W more for root beer than restaurants, but their food is pretty yummy. A neon sign:
-
Yeah, I figure that out soon after I posted, so I edited the post to remove the attachment and add the inline image. Thanks for the warm welcome!
-
Not only is it still here, but I signed up here just to post my results.