Jump to content

MJW

Members
  • Posts

    2,856
  • Joined

  • Last visited

  • Days Won

    70

Everything posted by MJW

  1. The clear-text-on-white effect in the video (which to my eye is kind of primitive) is really easy to do. Add a new layer (which will be transparent). Make sure it's above the photo image. Make a white rectangle. You can make a rectangular selection, and use Fill Selection to fill it with white. Use the Text tool to write text into the white rectangle. Set the Layer's Blend Mode to Add. A more general method, which allows backgrounds other than white, is: Add a new layer (which will be transparent). Make sure it's above the photo image. Make a white rectangle. You can make a rectangular selection, and use Fill Selection to fill it with white. Go to the Color menu and click More (if it isn't already showing the extra info). Set the Primary Color's Opacity-Alpha to 0 (it's a slider at the bottom of the menu). In the Tool settings just above the image window, change the Blending Mode (by the beaker icon) from Normal to Overwrite. Now whatever text you type in the white rectangle will be transparent. As Eli demonstrates, there are may fancier ways to show the text above an image (though I realize, sometimes simpler is better).
  2. That crystal sphere is really neat, Pixey!
  3. Another way to produce 24-bit height maps is to smooth black-and-white images using the Texture Smoother. Under that topic I show an example with a gold earring. The Texture Smoother is very useful, but isn't perfect. The spheres it can produce aren't as nice as the plugin-produced spheres. The images in my second comment all used the sphere height map I posted with my initial Texture Shader comment. I had to erase the black background by hand. The plugin I just published allows a lot better control.
  4. Part II. First I'll combine them with the Texture Shader. Run PDN, and copy the sphere into a new image. Copy the grid into the clipboard. Run Texture Shader (from the Height Map submenu). Change the following controls from their defaults: Image: Clipboard. Texture Height Scale: 255 Use Alpha from Texture: Checked Directional Light Direction: 0, -150, 50 Antialias: Checked (Note: To enter a value into a slider's edit box: highlight the current value; type in the new value; then do a mouse click in any other slider's edit box to cause the new value to be accepted.) [Let me insert a short diversion to explain why the Texture Height is 255. The depth range is considered to be an unsigned number from 0 to 1. The sphere map uses all 24 bits, going from black (0) to white (all bits on). Therefore, the unscaled sphere height is 1. The sphere image has a width of 510, so its radius is 255. Thus, the height of the half-sphere that's visible needs to be scaled by 255 to have the same radius. Often, I just adjust the height by eye, but its useful to understand how the depth range works.] The result should look like this: Note that this uses the default Image Mapping Method, Surface Offset 1. This mapping method attempts to make the clipboard image (the grid) look like it was painted onto the image in the window image (the sphere). Now undo the effect (or use a different copy of the sphere). Run Texture Merger. Change the following controls from their defaults: Clipboard Image Mapping Method: Surface Offset 1 (default is No Displacement) Merged Height Scale: 255 Height Merge Method: Subtract (default is Add) Clipboard Height Scale: 0.015 Antialias: Checked Show Shading: Checked Directional Light Direction: 0, -150, 50 Now the result should be: Instead of "painting" the grid image onto the sphere, it subtracted the grid image, interpreted as a height map. The black areas of the grid are 0, so the corresponding areas of the sphere are unchanged. The white gridlines are 1. They are scaled by the clipboard height and subtracted from the sphere height, leaving the channels. Because the mapping mode is Surface Offset 1, the grid is displaced, just as it was with the Texture Shader. [Another short diversion. If you use Add instead of Subtract, the lines will show up as ridges. However, at the center of the sphere, the sum of the heights will be too large to fit in the 0-to-1 range, so the height will be clipped. What to do? The answer is that the Canvas Height Scale will need to be reduced, and the Merged Height Scale will need to be increased to compensate. If the Canvas Height Scale is set to 0.5, the Merged Height Scale will need to be twice it's original value of 255, which is 510. The Clipboard Height Scale and Displacement will also need to be adjusted. (I usually only reduce the Canvas Height Scale as much as I need to, to avoid overflows.) These adjustments, while sometimes inconvenient, are usually not too difficult, because most everything is just based on appearance, anyway.] Uncheck Show Shading, and the result will be: This is the height map that when shaded will produce the sphere with the grid channels. Run the Texture Shader with Image changed to White, and the result will look like the Texture Merger. But with the Texture Shader, more complex mapping methods, such as Reflection, are available. For example (using Tiled clipboard and Reflection (with Re-reflection)): [If something doesn't seem to be working as expected in the Texture Merger, check to see if some control is set to the wrong value. It happens to me all the time. There are so many controls; it's hard to keep track of them all. I especially forget to change the Clipboard Image Mapping Method and the Height Merge Method from the values I used previously.]
  5. Part I. This is a short beginner's tutorial on the Texture Merger. Let me preface it by saying that knowing how to use the Texture Shader is a prerequisite to using the Texture Merger. The Texture Merger uses the same ideas as the Texture Shader, but in a more complex way, and the purpose of the Texture Merger is to produce height maps that can be shaded with the Texture Shader. All the example in my second comment were shaded that way. This tutorial will attempt to show the relationship between what the Texture Shader does and what the Texture Merger does. I also need to point out that there are two types of height maps: what I call textures and (for want of a better word) shapes. Textures are things like a cloth surface and such, where the height is small; shapes are things like spheres that are about as high as they are wide. The Texture Shader was originally intended to deal mostly with textures, but I later found many uses for shapes. (I sort of wish I called it Height-Map Shader instead). Height maps can either be black-and-white images, or colored images where the RGB channels are combined into a single 24-bit depth value. Black-and-white maps are easy to produce and modify, but only work well for textures. Since they only have 256 levels, tall objects have steps, which show up as waterlines when shading. For this example I'll use a texture and a shape. The texture is a slightly blurred white-on-black grid. Blurring is often desirable to eliminate high-frequency variations in height, which often cause aliasing problems. Here is the texture: The shape is a 24-bit height map sphere on a transparent background produced with a special plugin:
  6. This is a rather specialized plugin. It generates a spherical height map for use with my various height-map plugins. Though it logically fits in the Render submenu, I put it in the Height Map submenu instead, since it's only really useful with those effects. The plugin: RenderSphereHeightMap.zip The UI: As described by the Help Menu: Render Sphere Height Map renders a 24-bit height map for a sphere. The controls are: Sphere Diameter: Specifies the diameter of the rendered sphere. The choices are: 510: Sets the diameter to 510 (so the radius is 255). Minimum Selection Dimension: Sets the diameter to the minimum of the width and height of the selection. Selection Dimensions (Elliptical): Sets the horizontal diameter to the width of the selection and the vertical diameter to the height of the selection. Maximum Sphere Height: Specifies the maximum height of the rendered sphere, relative to the full 24-bit depth range. Feathering Height (If Transparent Background): When used with a transparent background, specifies the maximum height at which the sphere begins to become transparent. Transparent Background: Specifies that pixels outside the sphere should be made transparent instead of black. Here is an example of a 512x512 sphere height map: The Texture Merger plugin allows a height map in the clipboard to be scaled, stretched in X or Y, and to have the depth scaled, so there isn't usually a need to generate new sphere height map when a new size is required. Up to now, I've been using the one I included in my initial Texture Shader comment. (That image was generated with a simpler predecessor to this plugin.) The reason the sphere is scaled to the selection instead of having the size specified is mostly historical. I may decide to change it later, especially if I make this a Visual Studio (instead of CodeLab) plugin, so I can provide both options and disable the inapplicable controls.
  7. That's good. I hoped to submit an entry, but didn't know if I'd have time to create one. I'm surprised there haven't been more entries. It seems like a fun topic. Have a great time in Berlin, Drew!
  8. Yes, I'll do that later today. It's definitely a complex plugin that doesn't really work like much else except Texture Shader. I should have added more explanation in my original comment, but it was already approaching the length of a novelette and I didn't want to make it into a novel.
  9. I definitely think any plugin that uses information from any pixel except the one being modified should not be in the Adjustments menu. That's a hard line that shouldn't be crossed. The problem is there are quite a few plugins in the Effects menu that only use information from the modified pixel. They could be adjustments, but for various reasons are classified as effects. I think this plugin belongs under Color. Or at least that's where I'd put it. It makes a difference, though, if Red ochre has a number of related effects that work together in some way.
  10. If anyone asks -- especially anyone named Rick -- you didn't hear it from me: protected override void OnDispose(bool disposing) { if (showMessage && !IsCancelRequested) { Thread t = new Thread(() => MessageBox.Show("Modeless Message Box!")); t.Start(); } showMessage = false; base.OnDispose(disposing); } bool showMessage = false; protected override void OnSetRenderInfo(PropertyBasedEffectConfigToken newToken, RenderArgs dstArgs, RenderArgs winArgs) { showMessage = true; . . . Despite a rigorous ten minutes of testing (okay, some of that time was writing it), I'm sure there are a million problems with it, not the least of which being it wouldn't be allowed.
  11. I think it may currently not be possible, even under VS, when using IndirectUI. A much-desired feature (at least by BoltBait and me) is to be able to tell when the effect is finished, and processing the final render pass. This seems quite similar. Also, if something interferes with the normal effect close-down process by putting up a message box, I think PDN might show one of those progress-bar windows that makes it look like the effect has hung. I looked at the various overridable Effect methods, and didn't see anything that seems useful. I could easily be wrong, though, since the whole subject is rather arcane. Though perhaps somewhat inelegant, you could add a button to the UI that when pressed displays the info in a MessageBox.
  12. This is a VS project, not CodeLab, as my perhaps overuse of disabling inapplicable controls proves. It uses IndirectUI, though. The fact is, in my opinion the look-and-feel of most non-IndirectUI plugins leaves a lot to be desired. Shape3D, for instance, is an example of a UI whose concept is quite good, but whose implementation is . . . well let's just say it could be improved. I see that too often. For example, controls with no reset button -- I expect PDN UI controls to have reset buttons to restore their default values. I've considered using OptionBasedEffects, but that project seems somewhat in limbo, and I'm not fond of the requirement of a second DLL. For right now, I'll probably stick with IndirectUI, despite its sometimes frustrating limitations. I wish IndirectUI supported tabs. I'm not sure what you mean by " ...and a help file." The Texture Merger has a Help Menu, which I quoted from in my opening comment.
  13. To be honest, I haven't noticed that problem. All the pixel fetching is done with linear interpolation between samples. There could, of course, be a problem in how I do it. I assume it's the shaded version you're talking about. The unshaded 24-bit height map will always look rather random, because the way colors are assigned isn't intended to be meaningful without shading. Because there are so many options, I'll need a more exact description of what you're doing. The antialiasing option will improve many cases where there's high-frequency variation in the height maps.
  14. I don't know why that would be. I just tried it myself, and it worked. If you haven't already done so, check and make sure the Program Files>paint.net>Effects folder contains a file called TextureMerger.dll. One tiny bit of advice. I never Extract the files in the ZIP file. I just go into the ZIP file as if it were a folder, copy the DLL, and paste it into the Effects folder. Works every time, and seems a lot simpler.
  15. The clipboard sphere was elongated and subtracted twice from the window sphere. A cloth texture was mapped onto the sphere with Add; a grid was mapped onto another sphere with Subtract, then Minimum was used to combine them. The Make Unmodified Canvas Heights Transparent option was used so they could be shaded separately. A heart, produced by blurring and smoothing a heart shape, was combined with a sphere using the Multiply merge method.
  16. This plugin is meant to work in conjunction with my other Height-Map plugins. It's in the "Effects>Height Map" menu. Here is Version 1.1 of the plugin: TextureMerger.zip The effect works similarly to Texture Shader, except instead of an image in the clipboard, the clipboard contains another height map. The height map in the canvas is combined with the height map in the clipboard in various ways. The default method, and the one it was originally written to do, is to add them. If plugins are rated by the number of controls, this is possibly the best plugin ever. The large number is necessary because there are so many things that need to be controlled: the window height scaling and offset, the clipboard orientation, scaling and offset, and the adjustments to the merged height. There are also controls for shading. Shading does not effect the merged height map, but it's necessary to judge the results. Because there's currently no way to automatically disable the shading before exiting, it must be disabled manually. (unless the shaded image is what is wanted). Fortunately, unlike the Texture Smoother, a mistake can easily be corrected with an Undo, followed by rerunning the Texture Merger. Here is the user interface (hide the eyes of sensitive children): According to the Help Menu: ---------- Texture Merger combines two height maps, one in the canvas and the other in the clipboard. Each height map consists of an 8-bit alpha channel and a 24-bit depth, formed by combining the RGB channels into a single 24-bit unsigned integer. The controls are: Clipboard Image: Specifies how pixels outside the clipboard boundaries are treated. Pixels outside the image range of the clipboard can be transparent, Clamped, Tiled, Alternately Tiled, or Brick Tiled. When Alternately Tiled is selected, the tile orientation is reversed for every other tile, so that the tiles match at the edges. The edge pixels are not repeated. When Brick Tiled is selected, every other row is offset by half the image width. The rows do not wrap from the top to the bottom. Clipboard Image Size: Increases or decreases the size of the clipboard image. Clipboard Image XY Proportion: Changes the XY proportion of the clipboard. Moving the control right increases the X size while decreasing the Y size. Moving the control left decreases the X size while increasing the Y size. Clipboard Image Offset: Moves the clipboard image relative to the canvas image. Clipboard Image Rotation: Specifies a counterclockwise rotation angle for the clipboard image, in degrees. Clipboard Image Mapping Method: Selects the method used to displace the clipboard image based on the canvas heights. (A number of methods are allowed which have no obvious physical meaning when merging height maps.) The choices are: No Displacement: Does not displace the clipboard image. Surface Offset 1: Uses the height and gradient of the canvas height map to attempt to map the clipboard image onto the canvas height map as if it were painted onto the surface. Surface Offset 2: An alternate method of mapping the clipboard image as if painted onto the surface. Gradient: The simplest mapping method. Displaces the clipboard image in the direction of the gradient, in proportion to the gradient magnitude. Gradient-Z: Displaces the clipboard image in the direction of the gradient, in proportion to the product of the canvas height and the gradient magnitude. Refraction: Displaces the clipboard image as if it were refracted by the canvas height map, in accordance with Snell's Law. The Displacement Scale is proportional to the Index of Refraction Reflection: Displaces the clipboard image as if it were reflected by the canvas height map surface. The Displacement Scale is proportional to the distance from the canvas height map to the reflected plane. Because the angle of reflection equals the angle of incidence, points with gradients of more than 45° will not reflect the image and will be rendered as transparent. Reflection (Ignore Height): Displaces the clipboard image as if it were reflected by the canvas height map surface, but uses only the gradient, ignoring the effect caused by the canvas height. Reflection (with Re-reflection): Applies reflection, but approximates the re-reflection of downward reflection vectors. Faux Reflection: Approximates reflection for gradients of less than 45°, but produces non-transparent pixels for gradients greater that 45°. Faux Reflection (Ignore Height): Applies Faux Reflection, ignoring the effect caused by the canvas height height. Divide Mapping Displacement by Ten: Specifies that the Mapping Displacement should be divided by 10 to decrease the control's range. Mapping Displacement: Controls the amount the clipboard heights are displaced. The effect depends on the Mapping Method. For most methods, it acts as a general scaling factor, but for Refraction and Reflection it has a specific physical meaning. For some mapping methods, such as reflection, setting this value to 0 does not result in no displacement. Divide Merged Height Scale by Ten: Specifies that the Merged Height should be divided by 10 to decrease the control's range. Merged Height Scale: Increases or decreases the height of the merged height map. The scaling affects the amount of displacement and the effective height for shading. Only the change in displacement changes the values in the merged height map. Merged Height Curvature: Increases or decreases the curvature of the merged height map. Merged Height Alpha Source: Selects the source of the alpha values for the Merged height map. The choices are: All Opaque: Make all heights opaque. Canvas Alpha: Use the alphas from the canvas. Clipboard Alpha: Use the alphas from the displaced clipboard. Composite Alpha: Use the composite alpha. This is the sum of the canvas and clipboard alpha minus the product. If either height is opaque, the merged height will be opaque. Height Merge Method: Selects the method used to combine clipboard heights with the canvas heights. The choices are: Add: Add the clipboard height to the canvas height. Subtract: Subtract the clipboard height from the canvas height. Multiply: Multiply the clipboard height by the canvas height. Maximum: Use the maximum of the clipboard height and the canvas height. Minimum: Use the minimum of the clipboard height and the canvas height. Clipboard: Use the clipboard height as displaced by the Mapping Method. Canvas: Use the canvas height and alpha, as modified by the canvas controls and the merged-height controls. Clipboard (No Displacement): Use the non-displaced clipboard height and alpha, as modified by the clipboard controls and the merged-height controls. Make Unmodified Canvas Heights Transparent: Specifies that if the merged height is the same as the canvas height, the merged height should be made transparent. This allows heights modified by the clipboard to be shaded separately from unmodified heights. Canvas Height Scale: Increases or decreases the canvas heights. Canvas Height Offset: Specifies the offset added to the scaled canvas heights. Canvas Height Curvature: Specifies the non-linear adjustment to the canvas heights, which increases or decreases the mid-range values while leaving the end-range values unchanged. This adjustment is applied before the scale and offset. Weight Clipboard Heights by Opacity: Specifies that the influence of a clipboard height on the merged height is proportional to the clipboard height's opacity. In particular, transparent heights are are ignored, and the canvas heights are used as the merged heights. This control is especially useful when offsetting the clipboard height in when the Height Merge Method is Maximum or Minimum. Invert Clipboard Height Range: Specifies that white clipboard pixels are 0 height and black clipboard pixels are maximum height. Scale Clipboard Heights by Clipboard Image Size: Specifies that the clipboard heights should be scaled to be proportional to the clipboard image size. Divide Clipboard Height Scale by Ten: Specifies that the Clipboard Height Scale should be divided by 10 to decrease the control's range. Clipboard Height Scale: Increases or decreases the clipboard heights. Clipboard Height Offset: Specifies the offset added to the scaled clipboard heights. Clipboard Height Curvature: Specifies the non-linear adjustment to the clipboard heights. Antialias: Specifies that antialiasing should be used. Antialiasing will slow the effect, because many more points need to be processed. but will often significantly improve the results.. Antialias Quality: Specifies the number of samples in each direction per pixel. The total number of samples per pixel is this value squared. ----------The following controls effect only the shaded image.---------- Show Shading (Disable Before Exiting): Specifies that the shaded height map should be shown instead of the actual merged height map. This must be disabled before exiting the effect in order to save the merged height map. Ambient Light Color: Sets the color of the ambient light source. Ambient Light affects all pixels equally, no matter their orientation. The default color is black (no ambient lighting). Directional Light Color: Sets the color of the Directional Light. The default color is white. Directional Light Direction (Use Outer Ring to Reverse): Sets the direction of the Directional Light. The Directional Light's effect on a pixel is determined by light's direction and the texture's gradient at the pixel. Moving the outer ring to the left side of the control reverses the light direction. Directional Light Intensity: Increases or decreases the intensity of the Directional Light. The directional light contributes both diffuse and specular (reflected) light. Specularity: Determines the shininess of the surface. Increasing this value decreases the diffuse lighting and increases the specular lighting. Specular Concentration (Exponent): Determines the sharpness of the specular highlights. Higher values produce sharper highlights. ---------- There are several changes from the Texture Shader, most of which I intend to add to the Texture Shader. Inspired by Red ochre, I added a Brick Tiled Clipboard Image option. I didn't include a Reflected Brick Tiled option, because I wasn't sure how useful it would be. Maybe I'll eventually add it. On several slider controls, such as the Texture Height, I added a divide-by-ten option. These are kind of awkward, but almost necessary to support the wide range of height-map heights made possible, especially using the Texture Smoother. Before the Texture Smoother, large height maps were difficult to produce without very noticeable waterlines, making them mostly useless. Some of the slider controls also use a non-linear range. Moving the slider at the low end of the range produces less change than the same movement at the high end. This allows fiver control at the low values. The Clipboard (No Displacement) Merge Method is useful for modifying a height map in the clipboard with no effect from whatever is in the window. I rather expect there will be a few bugs, since there are so many controls, and the interaction between them is quite complex. I'll follow this comment with a few examples of merged height-map images. EDIT: Version 1.1. I explain the changes in another comment.
  17. One way is to use my Color Clearer plugin to erase the white background. Another way is to set the Blending Mode of the text layer to Multiply and put a layer with the desired color underneath. You can also use the following cheap trick: Change the background to gray by reducing the brightness with the Brightness/Contrast Adjustment; run the Sepia Adjustment; change the hue and saturation with the Hue/Saturation adjustment. You may need to run Hue/Saturation more than once to get full saturation. You should generally create the text on a transparent background, unless there's a specific reason not to (which there seldom is).
  18. Congratulations to SiBorg on the stylish winning submission. Congratulations also to Pixey, Dipstick and Sasha, and to the other entrants. (I really like the way the last piece in Dispstick's puzzle moves into place.) Special gratitude to Drew for hosting.
  19. I made a version of the photo with the only changes being to remove the change in contrast on one side, and the substitution of a new background. I wanted to show how much that improves the image. I didn't do some of the feathering tricks which would improve the blending of the foreground and background. I'd first want to adjust the contrast and such of the foreground. BTW, I should mention BoltBait's Photo>Combined Photo Adjustments. It contains a number of adjustments to spiff up photos. To erase around something in an image, I suggest first using a fairly large eraser -- say a radius of 10. Erase all the large curves. When you reach areas with sharp curves or angles, or small indentations, skip them. When done, go back with a small eraser size and take care of the tight areas. Remember to erase short strokes, letting up on the mouse button often. If you don't, when you make a mistake and erase something you didn't mean to, the Undo will undo all the good erasures along with the bad. (As often as I remind myself to do that, I always forget!) Make sure you keep the original version around. Sometimes when you finish, you'll find you erased too far in on an edge. Just use the Lasso tool to cut the area from the original photo, and paste it as a new layer into the edited photo. (It will paste into the exact same location, as long as you haven't cropped the new version -- which you should not do!) Then merge down. You'll have a second opportunity to erase it correctly. One additional comment. You might think it would be a good idea to use the Magic Wand in areas where the contrast is high between the foreground and background, I've seldom had good luck with that method. I almost always end up with a raggedy edge, and pixels erased that shouldn't have been.Perhaps it's just my technique, or lack there of.
  20. I'm not a big fan of the Clone Stamp. It has its uses, but there are often better methods, in my opinion You have three types of areas, which require somewhat different approaches. First, the background; second, the clothes; third, the people. I doubt if you care much if the background of the original picture is preserved exactly as it was. If I were doing it, I'd try to completely remove the background and generate a fake one that looks similar. Removing the background is quite a bit of work, but with a little care, it can be done well. It requires doing it in sections using mostly the the Eraser Tool. You'll almost certainly want to add a colored background layer so you're not erasing against the checkerboard pattern. Use a color that contrasts with the image colors, so you know what's been erased, but not so obviously so that it's distracting. I might use a muted medium-green for this photo. Once a narrow band is erased around the figures, it's easy to eliminate the the rest. The difficulty is there are quite a few areas of low contrast between the foreground and background, though I don't see any that would cause huge problems. To replace the background, a slight gradient of something near the original background color, with some vignetting would probably look better than the original. If you're not into blatant fakery the way I am, and you'd prefer to keep the original background, I wouldn't use the Clone Brush. Instead, for each area that needs fixing, I'd proceed as follows: Copy the picture into another, lower, layer, then make the new layer invisible. Using the Eraser with a soft setting, erase the area that needs fixing. (You might want to use BoltBait's Object>Feather Object plugin to soften the erased edges even more, for a smoother edge transition.) Make the lower level visible (but leave it as the lower layer). Use Edit>Select All to select the layer. Use the Move Selected Pixels to move the lower layer around until you find a region that fills in the erased region well . You can rotate and stretch the lower layer as needed. Use the Adjustments>Brightness/Contrast and perhaps Hue/Saturation to improve the match. Once satisfied, Merge the layers. If only part of the erased region can be matched, that's fine. Just fill it in, and repeat the process for the area that didn't match.. (Saying I wouldn't use the Clone Brush is an overstatement. I'd certainly use it for eliminating small specks, where the procedure I describe above is overkill. Using the Clone Brush is much quicker.) The clothes are a bit more of a problem. You don't want to drastically change them. Fortunately, most of them are in pretty good shape. The exception is the suit of the guy on the right side. Off hand, I'm not quite sure the best way to fix that. You could try the clone brush. If I get a chance sometime soon, I'll see what I can come up with. That's the type of thing that requires a bit of experimentation; at least for me. The good news is that the most important elements, the people, are in fairly good condition, so you don't have to do much. Once you get the problems with the other elements fixed, you might want to experiment with Michael Vinther's Laplacian Pyrimaid Filter. It can do a lot to punch up photos. Don't be misled by the examples, which are mostly increasing details to get a certain look. It can also smooth images and make photos look clearer. Of course you also want to try simpler things like contrast, brightness, and saturation adjustments, and perhaps sharpening.
  21. The best way I know to make the sides match is to: Open the image in Paint.NET. Duplicate the image into another layer. Use the Rectangular Select Tool to select the darker region in the top layer. (Note the darker region doesn't go quite to the top of the photo. Take this into account when making the selection.) Use the Move Selection Tool to adjust the selection if necessary. Be as exact as possible. Invert the selection with Edit>Invert Selection. Erase the selected region with Edit>Erase Selection. Make the lower (lighter) layer the active layer. Use Adjustments>Brightness/Contrast to darken the lower layer to match the upper layer. You will probably need to play around for a while with the Brightness and Contrast controls, but you should be able to match the areas so that the edge is nearly imperceptible. Merge the layers.
  22. I assume the 1.0 MB is the number of megabytes in the image: 440 x 620 x 4 bytes-per-pixel = 1,091,200 bytes. (Don't know why it didn't say 1.1 MB.) The 94.3 KB is the size of the file. It looks like you're saving it as a JPEG file, which considerably compresses the image, reducing the file size. If it didn't, there'd be no reason to use JPEG instead of BMP.
  23. I think that sometimes there's an insufficient appreciation for the distinction between perspective transformations and other quadrilateral-to-quadrilateral transforms. I mostly just mean that I don't know exactly what the control you show does. In terms of my Perspective Transformation plugin, there are four control points that specify the quadrilateral into which the the window image is mapped. There can't also be a control that specifies the amount of perspective distortion, while keeping the control points the same, because there's only one perspective transformation that maps the window corners into the same corners of the quadrilateral.
  24. I couldn't in my wildest dreams imagine how it could be done using PDN. But now I'll make it my mission (or at least a minor sub-mission) to try to approximate the effect as nearly as possible. That would be a fun competition.
×
×
  • Create New...