Removing power lines using the Stroke path method

I watched a video created by Adobe Product Manager Brian O. Hughes titled Adobe Max:  Hidden Gems in Photoshop an excellent video (see link below).  I have been trying his easy method of removing power lines from an image using the pen tool and stroke path method defined as follows:
Using the pen tool create a path of the line to be removed.  Making sure the brush tool is small and set at 100% opacity;  click on the Spot Healing Brush making sure it is set to "content aware".  Then in the path panel click "stroke path" and it removes the line.
Well I have followed these instructions several times, very simple, but it doesn't remove the line for me.  I can manually shift click the start and ending point and it removes it but using the stroke command within the path panel doesn't work.  I am making sure the path is active.
Any ideas why it doesn't work for me?
Thanks...........Ralph
Here is the link to the video, his technique is listed near the end, @ minute 56:  http://www.youtube.com/user/Photoshop

Hi jjMack, thanks for your response.  I found my problem after realizing that I hadn't terminated my pen line.  I didn't realize I had to click the end anchor point to complete the line,  I thought since the line was obvious on the image that it had been created and  thought I couldn't see it in the paths panel because it was so small (these old eyes aren't what they used to be).  When clicking on the last anchor point it could easily be seen on the paths panel..  I just don't use the pen tool enough so I didn't realize my error.  Learn something everyday.  Incidentally, I had set the stroke path on the paths panel to Spot Healing Brush and only used the tools menu to confirm that content aware was selected.
Thanks again JJ................Ralph

Similar Messages

  • Blurred lines when using the stroke tool

    Im trying to draw frames with feathered corners using strokes, its supposed to be a solid black line 2px thick it works sometimes but not others. What I end up with is a blurred edge, almost like it's using a spray which is not at all what I want, have tried changing various settings but its still the same.
    Anyone any ideas please? It's driving me mad..
    Thanks!

    Yes, I was using the marquee tool to create the rectangular shapes then using the stroke tool. I took feathered setting off and that resolved the problem.
    But...
    How do I create rectangular shapres with rounded edges, then use the stroke tool?
    I've changed the colour settings so it's not being 'filled' but when I try to use stroke it's now greyed out.
    All I am trying to achieve is a rectangular shape with rounded edges with a black outline.
    I thought it would be simple ;)

  • How to remove characters/lines from the beginning of an InputStream

    Hi,
    I have a program which receives several InputStreams. From each of these streams I have to remove 2 lines from the beginning. After the lines are removed, all the streams are combined to one with SequenceInputStream and read in one chunk. Is there an easy/simple way of doing this?
    One option I thought would be to read the char by char until 2 end of line chars have been detected and then read the rest of the data to a buffer. And the create a ByteArrayInputStream out of this buffer. Problem with this approach is, that the amount of data can be large, so putting all the data in to memory might cause problems.
    Another option is to use BufferredInputStream and use the readline() method twice to get rid of the lines that are not needed. After this I would write the data to some output stream, which is then converted back to input stream. Propably would work, but sound too much of work for a simple thing like this. There has to be better way.
    To make it simple, what I need is a method that looks like the following, or something similar
    *  Removes n number of lines from the beginning of a InputStream.
    *  @param is InputStream where the lines are removed
    *  @param numberOfLines int value to indicate how many lines whould be removed
    *  @return InputStream where lines have been removed.
    public InputStream removeLines(InputStream is, numberOfLines);Thanks.

    Here's the code, feel free to use it. Comments are also welcome.
    public InputStream removeLinesFromTheBeginning(InputStream is, int numberOfLines) throws IOException
              char c = 'c';
              int i = 0;
              for(int n = 0 ; n < numberOfLines ; n++)
                   do
                        c = (char)is.read();
                        System.out.print(c);
                        if(c == (char)-1)     // end of stream reached before any newline characters were found.
                             return null;
                        i++;
                   while(c != '\n');
                   System.out.println();
                   System.out.println("Characters removed:" + i);
                   System.out.println("n: " + n);
                   i = 0;
              return is;
         }Edited by: dave_spaghetti on Jun 16, 2009 5:42 AM
    Fixed a bug.

  • [svn] 4694: Don't remove text lines from the container if it isn' t the container the lines were added to.

    Revision: 4694
    Author: [email protected]
    Date: 2009-01-27 14:35:21 -0800 (Tue, 27 Jan 2009)
    Log Message:
    Don't remove text lines from the container if it isn't the container the lines were added to. When there is a state change the displayObject can be switched out from under the TextGraphic and TextBox.
    QE Notes: need to add tests - will attach my test program to bug
    Doc Notes:
    Bugs: SDK-18923
    Reviewers: Gordon
    Ticket Links:
    http://bugs.adobe.com/jira/browse/SDK-18923
    Modified Paths:
    flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextBlockCompose r.as
    flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextFlowComposer .as

    Yup, you guys pointed me in the right direction.
    I changed my adjustmentListener to the following:
    JScrollBar scrollBar = (JScrollBar) e.getSource();
    int endLoc = document.getLength();
    try {
        Rectangle end = outputArea.modelToView(endLoc);
        if (end != null) {
            int n = scrollBar.getValue() + scrollBar.getVisibleAmount();
            boolean locked = (end.y >= n && n <= (end.y + end.height));
    } catch (BadLocationException ex) {
    }By comparing scrollbar position with the visible rectangle of the end of the document, I can now easily tell if the user has moved the tracker back or not.
    To go to the next step of automatically pausing scrolling whenever the user is moving the slider back, I also had to disable the automatic scrolling performed by DefaultCaret. Because there was no way to tell if the user was scrolling or if the output was adjusting from the adjustmentListener, I also had to flag whenever I was autoscrolling.
    The end result is a JTextPane that can be appended to at all, and locked by the user by using the slider. If new data arrives, the window is not scrolled, and any text selection the user has is not cleared. Perfect!

  • [svn] 3520: Add ability to use the FP10 unloadAndStop() method in SWFLoader .

    Revision: 3520
    Author: [email protected]
    Date: 2008-10-08 10:26:39 -0700 (Wed, 08 Oct 2008)
    Log Message:
    Add ability to use the FP10 unloadAndStop() method in SWFLoader.
    An application needs to be compiled with the "-target-player=10" argument to allow SWFLoader's unloadAndStop() function to use the Flash Player's unloadAndStop() function. If the argument is not provided then the Flash Player unload() function will be called instead.
    QE: YES
    Doc: YES
    Checkintests: YES
    Reviewer: Ely, Deepa
    Bugs: SDK-16764
    SWFLoader.as
    Added new public method unloadAndStop().
    Ticket Links:
    http://bugs.adobe.com/jira/browse/SDK-16764
    Modified Paths:
    flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/controls/SWFLoader.as

    Thank you for your replies.
    I have been looking into it as well and seem to have found quite a simple solution...
    First you need to create an instance of a UIScrollView in the .h file:
    IBOutlet UIScrollView *scrollView;
    Then in the .m file, add the following line of code in the viewDidLoad method:
    scrollView.contentSize = CGSizeMake(320, 700);
    Then in IB all you need to do is set the files owner to the controller file we have set up above, drag a new instance of UIScrollView to the window. Then set two of its referencing objects to the File's Owner (view and the scrollView we have defined).
    You can then add as many labels etc to the scroll view by dragging in IB. Load it all up and the view scrolls perfectly and displays all labels!
    Thanks for helping me look into this.

  • I would like to download a production desciption into my website like I have before, but it says I can't use the copy/paster method anymore. Why?

    I have a website - www.pawsitivepamperings.com, and I have been adding products for the last 6 months. I have been using the copy/paste method from my drop shipper. Since the end of last week, it hasn't been working. It has totally stopped my progress! I need help in using this function again - as soon as possible. Can you help me?

    I right click, and Copy from an HTML description from my drop shipper. Then I go to my website and right click to Paste.
    One of two things happens. (1) if it does copy, the text prints over the image; OR (2) I get a message that Firefox does not apply a Cut/Copy/Paste.
    The wording at the bottom of the description box says: Path: table> tbody> tr> td> p> font.
    I was told by my webmaster to eliminate the following but I don't see it on my products page: <table align="center" border="0" cellpadding="1" cellspacing="1" width="100%>.
    When I have been on a 'live chat' with my support team, a couple of them have overridden the issue and I could precede, but I go to the next product to add, the whole process starts again and I cannot proceed.
    Does this make sense?

  • Using the Process.getOutputStream() method

    Hi all,
    i have written a java program that executes System commands and returns output...
    this program works fine if you want to only execute the command and returns output...
    but suppose that the program that you executed waits for you to input something before returning ouput?!!
    i suppose i have to use the Process.getOutputStraem() method in my prog!
    but i don't know how to do that :-(
    can any one help me to refine the prog to handle this case !
    thanks a lot
    here is the code:
    import java.util.*;
    import java.io.*;
    class StreamGobbler extends Thread
        InputStream is;
        String type;
        OutputStream os;
        StreamGobbler(InputStream is, String type)
            this(is, type, null);
        StreamGobbler(InputStream is, String type, OutputStream redirect)
            this.is = is;
            this.type = type;
            this.os = redirect;
        public void run()
            try
                PrintWriter pw = null;
                if (os != null)
                    pw = new PrintWriter(os);
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);
                String line=null;
                while ( (line = br.readLine()) != null)
                    if (pw != null)
                        pw.println(line);
                    System.out.println(type + ">" + line);   
                if (pw != null)
                    pw.flush();
            } catch (IOException ioe)
                ioe.printStackTrace(); 
    public class GoodWinRedirect
        public static void main(String args[])
            if (args.length < 1)
                System.out.println("USAGE java GoodWinRedirect <outputfile>");
                System.exit(1);
            try
                FileOutputStream fos = new FileOutputStream(args[0]);
                Runtime rt = Runtime.getRuntime();
                Process proc = rt.exec("java jecho 'Hello World'");
                // any error message?
                StreamGobbler errorGobbler = new
                    StreamGobbler(proc.getErrorStream(), "ERROR");           
                // any output?
                StreamGobbler outputGobbler = new
                    StreamGobbler(proc.getInputStream(), "OUTPUT", fos);
                // kick them off
                errorGobbler.start();
                outputGobbler.start();
                // any error???
                int exitVal = proc.waitFor();
                System.out.println("ExitValue: " + exitVal);
                fos.flush();
                fos.close();       
            } catch (Throwable t)
                t.printStackTrace();
    }

    it's true that i've copied it and pasted it...
    but i do understand how it works (really)
    the article mentioned at last that we could send input
    to the Program by invoking getoutputStream
    i guess that we should write a construtor for the
    streamGobbler class but this time using a
    OutputStreamReader and may be doing sth elseThe "Gobbler" is there to eat up whatever bytes become available on an InputStream (from the program's output). I don't think ou just want to try to use the same class to handle the program's input.
    The Gobbler can be used for eating up whatever comes out of any program--it' general, and doesn't rely on any particular output from the program (input to the Gobler). This is not the case for whatever writes to the program's input. You'll need to write what the program expects in the proper order.

  • Lightswitch html use the 'any' query method

    Hi
    Can someone please tell me how i can use the "any" query method for entity collections in lightswitch html?
    Thanks

    Hi Xpert360
    It's for a type of EntityCollection this is the code from the msls-2.5.2.vsdoc.js line 2220
    any: function any(predicate) {
    /// <summary>
    /// Determines whether this sequence contains any
    /// items that optionally satisfy a condition.
    /// </summary>
    /// <param name="predicate" type="Function" optional="true">
    /// A function to test each item for a condition.
    /// <br/>Signature: Boolean item.predicate(item)
    /// </param>
    /// <returns type="Boolean">
    /// True if this sequence contains any items that
    /// satisfy the condition, if any; otherwise, false.
    /// </returns>
    var result = false;
    this.each(function (item) {
    if (!predicate || predicate.call(item, item)) {
    result = true;
    return false;
    return true;
    return result;
    Check it out and let me know if you know how to use it, my problem is how to use the call back function.
    Thanks

  • Can't add own application to RemoteApps - "You must specify a file from the RD Session Host server SERVERNAME by using the UNC path....

    Hi, there
    I'm not really pro- at RDS in server 2012 (r1), but I have a problem and don't find anything suitable on internet:
    I'm trying to publish one of my own, unlisted programs to rdweb, but it keeps saying "You must specify a file from the RD Session Host server SERVERNAME by using the UNC path...."
    1) I provided the path in the unc name - when I click "Add.." then i browse the the .exe file via network share, not via local path. So that should be OK
    2) Firewall is turned off and eventhough the exeptions are enabled, both of then, checked
    What else should I do to make this work?

    Okej, I found the sollution:
    You have to specify the path like \\hostname\drive_letter$\path-to-the-program.
    I was doing wrong because i wrote it like \\hostname\ShareName\path-to-the-program.
    I was misleded because the wizard wants me to find the program by clicking, and not by entring the path manualy.

  • I found my old ipod and i forgot the passcode. It doesnt have an home button so i dont know how to put it in recovery mode so i can restore it. Ive been using the assisted touch method. But what should i do to put it in recovery mode

    i found my old ipod and i forgot the passcode. It doesnt have an home button so i dont know how to put it in recovery mode so i can restore it. Ive been using the assisted touch method. But what should i do to put it in recovery mode so i can restore it.

    Use this program to place the iPod in recovery mode
    RecBoot: Easy Way to Put iPhone into Recovery Mode

  • Drawing a curved line using the pen tool, dragging the text cursor over the line but will only give me a small area to write in, in-between a circle and a circle with a cross in?

    Drawing a curved line using the pen tool, dragging the text cursor over the line but will only give me a small area to write in, in-between a circle and a circle with a cross in?

    If you change your tool to the "Direct Selection Tool" (A) then you should be able to adjust the area for you to type in...

  • How to get the tag of the User Defined Variables using the Get Tag method%3F

    For the cRIO modules under a cRIO Chasis, a tag value can be obtained using the Get Tag method with crio.Type to the TagName input of the method. When it comes to the User Defined Variables, what should be fed to the TagName input?

    For the cRIO modules under a cRIO Chasis, a tag value can be obtained using the Get Tag method with crio.Type to the TagName input of the method. When it comes to the User Defined Variables, what should be fed to the TagName input?

  • I need help using the target path tool

    Hi all,
    I realise that I need to keep all my code on the main timeline, so now I need some serious help with targeting movieclips and buttons, when I use the target path tool (the little gun sight in the action script panel) it lets me navigate to the thing I want, but when I use it's suggestion it very often doesn't work, and I am left using trial and error to work it out.  Ican get stuff to work, but I really have no idea why or how I am doing it, Sorry to be such a N00B, but I really think if I can work this out I am going to get somwhere.
    Cheers
    sub

    subtlefly72 wrote:
    Thanks kglad,
    OK that is basically what I have been doing, but its been a bit hit and miss, but maybe now I see why, your last sentence
    of course, all those objects have to exist at the time your code executes.
    So if I am referencing something inside a mc and it doesnt exist on the first frame there will be an error?
    exactly.
    also what is the       this.  Object() and Object(parent)  ??
    Do I need to be using these?
    not when using code on the main timeline.  "this" refers to the current scope which for code on the main timeline, is the main timeline.  the following are the same:
    this.mc and mc
    this.var1 and var1
    And still I want to know why the target tool gives me a path that doesn't work?
    i can't tell you much about the target tool.  i've never used it.  but i tried testing it just now and it seemed to work correctly to target a nested movieclip.  again, you must sure that object exists when your code executes so if you target something on frame 2 (or greater) of a movieclip using code on frame 1 of the main timeline, the reference may be correct but the object won't exist when your code executes.  there are a number of ways to handle that if it's your main problem.

  • Using the "Stroke" feature to outline shapes keeps resizing them. Help!

    I'm creating a document with 4-equal sized elements. I need to lock the exact size and placement on the page as these will be printed double-sided. Every time I use the stroke feature to outline to make a border it screws up the size of the element. Is there any way to stop this?
    Thanks!

    The size of a shape is defined at mid_width of its borders.
    So, if you change the stroke, you don't change the mathematical size but you change the 'appearing' one. The soluc is to reduce the mathematical size which is the one returned by the Inspector > Measures
    Yvan KOENIG (VALLAURIS, France) mercredi 28 avril 2010 09:11:33

  • How to use the VBS MoveFolder methode in DIAdem without any error message?

    Hi,
    I want to move folders with the VBS MoveFolder methode, but in DIAdem I run in problems. When I use the following comman    fso.MoveFolder(project_folder & test_folder, project_folder & test_folder & "\" & test_ & " " & test_count) 
    I get error message
    "During call a sub routine no parentheses are allowed!"
    When I remove the brackets and use    fso.MoveFolder project_folder & test_folder, project_folder & test_folder & "\" & test_ & " " & test_count 
    I get the error message
    "Invalid sub routine call."
    How I have to use the command right?
    (the text of error messages is free translated from German Version of DIAdem 11.0! Take only the sense, not the exact wording!)
    Thanks for help.
    Regards
    Sven

    Hello Sven!
    Just add a 'Call' at the beginning of your first line will solve the syntatic error. I recommend always to use 'Call' and parenthesis.
    But there is a fundamental problem in your code: MoveFolder moves a folder from a source to a new destination and the old source folder will be deleted. You try to move a folder to a location below the same folder. If the MoveFolder wouldn't recognize these situtation and throws an error all of your data would be deleted!
    Just print out your paths in a Messagebox to clearify the situation.
    Matthias
    Matthias Alleweldt
    Project Engineer / Projektingenieur
    Twigeater?  

Maybe you are looking for

  • ITunes on a PC with Windows 7, iPhone and Ipad

    iTunes installed on a PC with Windows 7, you can sync with an iPhone and Ipad users and different accounts?

  • Short dump while executing Market Planner

    Hi, Working on CRM4.0 sp6 . While executing Market Planner(CRM_MKTPL) getting dump.... Syntax error in program "CL_CRM_MKTPL_APPL_BASE==============CP". Can enyone help out. Thanks, Anirban

  • Download Error on Apps page

    I'm trying to load my apps page through Adobe Cloud but it isnt loading, instaed I get the Download Error sign. I seem to be online ok? My OS is OSX 10.8.5 Also does my Subscription allow for 2 users or just one?

  • How to handle text files with Header lines

    Hi, Eventhough the number of header lines is specified, when I do Reverse to get columns, its considering only header line. I have file format like ffserver started. 192.168.11.30 - - [Fri Apr 20 19:28:01 2007] "GET /robots.txt HTTP/1.1" 404 150 192.

  • No pdf file generated

    Hello, i use Acrobat XI Standard and i can't generate pdf-files from autocad in A0, A1 and A2 format via the pdf printer. I have created the user-defined page-layouts for the A0, A1 and A2 format, since these are not available as standard formats in