Skip to main content
mrbobdobolina
Known Participant
July 7, 2015

P: Photoshop 22.0: Where is Line Weight/Width and Pixels options?

  • July 7, 2015
  • 676 replies
  • 32052 views

I'm having trouble using the Line Tool in PS 22.0.0. 

 

How do I set the width/weight of the line? In PS 21 there was a "Weight" option along the top bar, but I don't see that anymore. Am I missing it? Or did it move? 

 

This might be a separate issue, but the lines I'm drawing are not showing up. I have a fill color and stroke color selected, but when I make a line, I don't see it. I just see a blue outline of where it is... the same that might happen if I made a "path" instead of a "shape." 

 

I just need to make a line with a width/weight of 20px.

This topic has been closed for replies.

676 replies

Known Participant
October 23, 2020

Hi Tom,

I'm not a programmer.  What am I supposed to do with this code?

j. aaronk67378513
Participating Frequently
October 23, 2020

I won't be upgrading if pixel-mode-lines are disabled in new versions. I'm an illustrator so my workflow is very WYSIWYG. I try to keep the number of 'entities' I need to manage to a bare minimum. I keep my layer stack small. I never use vector objects or smart objects. My focus when I work is on the image itself, and my focus is disturbed when I get pulled out of the image to manage something in the interface. A prime example of this kind of unwelcome distraction is the recent change to selecting a layer blending mode - now you have to hit enter to commit the choice. It's not a big deal in isolation, but it becomes a big deal when you have to do it hundreds of times an hour. Hundreds of distracting unnecessary inputs is /not/ my idea of an improvement.  Likewise with this new line behavior - while it may seem that spawning a new entity that can be edited later is an improvement (and I can see how it might be for some) for me it's another example of extra work - each one of those lines needs to be rasterized and merged down into my current painting layer before I can get back into my painting flow. So yet again I'll being burdened with hundreds of extra unnecessary inputs per day. I fail to see a good reason why you would disable the WYSIWYG functionality in favor of editable entities, rather than support both methods. 

Participant
October 23, 2020

Had to choose line in Stroke Options to make it work, although it indicates that this is set to line type when you start using line tool.

In earlier versions of Photoshop it is set to line as default and you dont have to choose anything to make it work. Still think this is a bug in v 22.0.0. 

Participant
October 23, 2020

Using line tool with or without arrowheads and in Photoshop 22.0.0. for Mac OS don't fill or stroke the line. 

Tom Winkelmann
Inspiring
October 23, 2020

The good part is, that Adobe didn't touch the code - they only removed the icons...

#target photoshop

var idMk = charIDToTypeID( "Mk  " );
    var desc19 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref2 = new ActionReference();
        var idcontentLayer = stringIDToTypeID( "contentLayer" );
        ref2.putClass( idcontentLayer );
    desc19.putReference( idnull, ref2 );
    var idUsng = charIDToTypeID( "Usng" );
        var desc20 = new ActionDescriptor();
        var idType = charIDToTypeID( "Type" );
            var desc21 = new ActionDescriptor();
            var idClr = charIDToTypeID( "Clr " );
                var desc22 = new ActionDescriptor();
                var idRd = charIDToTypeID( "Rd  " );
                desc22.putDouble( idRd, 0.000000 );
                var idGrn = charIDToTypeID( "Grn " );
                desc22.putDouble( idGrn, 0.000000 );
                var idBl = charIDToTypeID( "Bl  " );
                desc22.putDouble( idBl, 0.000000 );
            var idRGBC = charIDToTypeID( "RGBC" );
            desc21.putObject( idClr, idRGBC, desc22 );
        var idsolidColorLayer = stringIDToTypeID( "solidColorLayer" );
        desc20.putObject( idType, idsolidColorLayer, desc21 );
        var idShp = charIDToTypeID( "Shp " );
            var desc23 = new ActionDescriptor();
            var idStrt = charIDToTypeID( "Strt" );
                var desc24 = new ActionDescriptor();
                var idHrzn = charIDToTypeID( "Hrzn" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc24.putUnitDouble( idHrzn, idRlt, 20.000000 );
                var idVrtc = charIDToTypeID( "Vrtc" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc24.putUnitDouble( idVrtc, idRlt, 50.000000 );
            var idPnt = charIDToTypeID( "Pnt " );
            desc23.putObject( idStrt, idPnt, desc24 );
            var idEnd = charIDToTypeID( "End " );
                var desc25 = new ActionDescriptor();
                var idHrzn = charIDToTypeID( "Hrzn" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc25.putUnitDouble( idHrzn, idRlt, 220.000000 );
                var idVrtc = charIDToTypeID( "Vrtc" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc25.putUnitDouble( idVrtc, idRlt, 50.000000 );
            var idPnt = charIDToTypeID( "Pnt " );
            desc23.putObject( idEnd, idPnt, desc25 );
            var idWdth = charIDToTypeID( "Wdth" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc23.putUnitDouble( idWdth, idPxl, 20.000000 );
        var idLn = charIDToTypeID( "Ln  " );
        desc20.putObject( idShp, idLn, desc23 );
        var idstrokeStyle = stringIDToTypeID( "strokeStyle" );
            var desc26 = new ActionDescriptor();
            var idstrokeStyleVersion = stringIDToTypeID( "strokeStyleVersion" );
            desc26.putInteger( idstrokeStyleVersion, 2 );
            var idstrokeEnabled = stringIDToTypeID( "strokeEnabled" );
            desc26.putBoolean( idstrokeEnabled, true );
            var idfillEnabled = stringIDToTypeID( "fillEnabled" );
            desc26.putBoolean( idfillEnabled, false );
            var idstrokeStyleLineWidth = stringIDToTypeID( "strokeStyleLineWidth" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc26.putUnitDouble( idstrokeStyleLineWidth, idPxl, 0.810000 );
            var idstrokeStyleLineDashOffset = stringIDToTypeID( "strokeStyleLineDashOffset" );
            var idPnt = charIDToTypeID( "#Pnt" );
            desc26.putUnitDouble( idstrokeStyleLineDashOffset, idPnt, 0.000000 );
            var idstrokeStyleMiterLimit = stringIDToTypeID( "strokeStyleMiterLimit" );
            desc26.putDouble( idstrokeStyleMiterLimit, 100.000000 );
            var idstrokeStyleLineCapType = stringIDToTypeID( "strokeStyleLineCapType" );
            var idstrokeStyleLineCapType = stringIDToTypeID( "strokeStyleLineCapType" );
            var idstrokeStyleButtCap = stringIDToTypeID( "strokeStyleButtCap" );
            desc26.putEnumerated( idstrokeStyleLineCapType, idstrokeStyleLineCapType, idstrokeStyleButtCap );
            var idstrokeStyleLineJoinType = stringIDToTypeID( "strokeStyleLineJoinType" );
            var idstrokeStyleLineJoinType = stringIDToTypeID( "strokeStyleLineJoinType" );
            var idstrokeStyleMiterJoin = stringIDToTypeID( "strokeStyleMiterJoin" );
            desc26.putEnumerated( idstrokeStyleLineJoinType, idstrokeStyleLineJoinType, idstrokeStyleMiterJoin );
            var idstrokeStyleLineAlignment = stringIDToTypeID( "strokeStyleLineAlignment" );
            var idstrokeStyleLineAlignment = stringIDToTypeID( "strokeStyleLineAlignment" );
            var idstrokeStyleAlignInside = stringIDToTypeID( "strokeStyleAlignInside" );
            desc26.putEnumerated( idstrokeStyleLineAlignment, idstrokeStyleLineAlignment, idstrokeStyleAlignInside );
            var idstrokeStyleScaleLock = stringIDToTypeID( "strokeStyleScaleLock" );
            desc26.putBoolean( idstrokeStyleScaleLock, false );
            var idstrokeStyleStrokeAdjust = stringIDToTypeID( "strokeStyleStrokeAdjust" );
            desc26.putBoolean( idstrokeStyleStrokeAdjust, false );
            var idstrokeStyleLineDashSet = stringIDToTypeID( "strokeStyleLineDashSet" );
                var list3 = new ActionList();
            desc26.putList( idstrokeStyleLineDashSet, list3 );
            var idstrokeStyleBlendMode = stringIDToTypeID( "strokeStyleBlendMode" );
            var idBlnM = charIDToTypeID( "BlnM" );
            var idNrml = charIDToTypeID( "Nrml" );
            desc26.putEnumerated( idstrokeStyleBlendMode, idBlnM, idNrml );
            var idstrokeStyleOpacity = stringIDToTypeID( "strokeStyleOpacity" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc26.putUnitDouble( idstrokeStyleOpacity, idPrc, 100.000000 );
            var idstrokeStyleContent = stringIDToTypeID( "strokeStyleContent" );
                var desc27 = new ActionDescriptor();
                var idClr = charIDToTypeID( "Clr " );
                    var desc28 = new ActionDescriptor();
                    var idRd = charIDToTypeID( "Rd  " );
                    desc28.putDouble( idRd, 151.632748 );
                    var idGrn = charIDToTypeID( "Grn " );
                    desc28.putDouble( idGrn, 151.203934 );
                    var idBl = charIDToTypeID( "Bl  " );
                    desc28.putDouble( idBl, 151.328795 );
                var idRGBC = charIDToTypeID( "RGBC" );
                desc27.putObject( idClr, idRGBC, desc28 );
            var idsolidColorLayer = stringIDToTypeID( "solidColorLayer" );
            desc26.putObject( idstrokeStyleContent, idsolidColorLayer, desc27 );
            var idstrokeStyleResolution = stringIDToTypeID( "strokeStyleResolution" );
            desc26.putDouble( idstrokeStyleResolution, 72.000000 );
        var idstrokeStyle = stringIDToTypeID( "strokeStyle" );
        desc20.putObject( idstrokeStyle, idstrokeStyle, desc26 );
    var idcontentLayer = stringIDToTypeID( "contentLayer" );
    desc19.putObject( idUsng, idcontentLayer, desc20 );
    var idLyrI = charIDToTypeID( "LyrI" );
    desc19.putInteger( idLyrI, 3 );
executeAction( idMk, desc19, DialogModes.NO );

var idMk = charIDToTypeID( "Mk  " );
    var desc51 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref13 = new ActionReference();
        var idcontentLayer = stringIDToTypeID( "contentLayer" );
        ref13.putClass( idcontentLayer );
    desc51.putReference( idnull, ref13 );
    var idUsng = charIDToTypeID( "Usng" );
        var desc52 = new ActionDescriptor();
        var idType = charIDToTypeID( "Type" );
            var desc53 = new ActionDescriptor();
            var idClr = charIDToTypeID( "Clr " );
                var desc54 = new ActionDescriptor();
                var idRd = charIDToTypeID( "Rd  " );
                desc54.putDouble( idRd, 255.000000 );
                var idGrn = charIDToTypeID( "Grn " );
                desc54.putDouble( idGrn, 241.922698 );
                var idBl = charIDToTypeID( "Bl  " );
                desc54.putDouble( idBl, 0.000000 );
            var idRGBC = charIDToTypeID( "RGBC" );
            desc53.putObject( idClr, idRGBC, desc54 );
        var idsolidColorLayer = stringIDToTypeID( "solidColorLayer" );
        desc52.putObject( idType, idsolidColorLayer, desc53 );
        var idShp = charIDToTypeID( "Shp " );
            var desc55 = new ActionDescriptor();
            var idStrt = charIDToTypeID( "Strt" );
                var desc56 = new ActionDescriptor();
                var idHrzn = charIDToTypeID( "Hrzn" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc56.putUnitDouble( idHrzn, idRlt, 20.000 );
                var idVrtc = charIDToTypeID( "Vrtc" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc56.putUnitDouble( idVrtc, idRlt, 100.000 );
            var idPnt = charIDToTypeID( "Pnt " );
            desc55.putObject( idStrt, idPnt, desc56 );
            var idEnd = charIDToTypeID( "End " );
                var desc57 = new ActionDescriptor();
                var idHrzn = charIDToTypeID( "Hrzn" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc57.putUnitDouble( idHrzn, idRlt, 220.000 );
                var idVrtc = charIDToTypeID( "Vrtc" );
                var idRlt = charIDToTypeID( "#Rlt" );
                desc57.putUnitDouble( idVrtc, idRlt, 100.000 );
            var idPnt = charIDToTypeID( "Pnt " );
            desc55.putObject( idEnd, idPnt, desc57 );
            var idWdth = charIDToTypeID( "Wdth" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc55.putUnitDouble( idWdth, idPxl, 13.000000 );
            var idStrA = charIDToTypeID( "StrA" );
                var desc58 = new ActionDescriptor();
                var idWdth = charIDToTypeID( "Wdth" );
                var idPrc = charIDToTypeID( "#Prc" );
                desc58.putUnitDouble( idWdth, idPrc, 25.000000 );
                var idLngt = charIDToTypeID( "Lngt" );
                var idPrc = charIDToTypeID( "#Prc" );
                desc58.putUnitDouble( idLngt, idPrc, 50.000000 );
                var idCncv = charIDToTypeID( "Cncv" );
                var idPrc = charIDToTypeID( "#Prc" );
                desc58.putUnitDouble( idCncv, idPrc, 0.000000 );
                var idOn = charIDToTypeID( "On  " );
                desc58.putBoolean( idOn, true );
            var idcArw = charIDToTypeID( "cArw" );
            desc55.putObject( idStrA, idcArw, desc58 );
            var idEndA = charIDToTypeID( "EndA" );
                var desc59 = new ActionDescriptor();
                var idWdth = charIDToTypeID( "Wdth" );
                var idPrc = charIDToTypeID( "#Prc" );
                desc59.putUnitDouble( idWdth, idPrc, 25.000000 );
                var idLngt = charIDToTypeID( "Lngt" );
                var idPrc = charIDToTypeID( "#Prc" );
                desc59.putUnitDouble( idLngt, idPrc, 50.000000 );
                var idCncv = charIDToTypeID( "Cncv" );
                var idPrc = charIDToTypeID( "#Prc" );
                desc59.putUnitDouble( idCncv, idPrc, 0.000000 );
                var idOn = charIDToTypeID( "On  " );
                desc59.putBoolean( idOn, true );
            var idcArw = charIDToTypeID( "cArw" );
            desc55.putObject( idEndA, idcArw, desc59 );
        var idLn = charIDToTypeID( "Ln  " );
        desc52.putObject( idShp, idLn, desc55 );
        var idstrokeStyle = stringIDToTypeID( "strokeStyle" );
            var desc60 = new ActionDescriptor();
            var idstrokeStyleVersion = stringIDToTypeID( "strokeStyleVersion" );
            desc60.putInteger( idstrokeStyleVersion, 2 );
            var idstrokeEnabled = stringIDToTypeID( "strokeEnabled" );
            desc60.putBoolean( idstrokeEnabled, true );
            var idfillEnabled = stringIDToTypeID( "fillEnabled" );
            desc60.putBoolean( idfillEnabled, true );
            var idstrokeStyleLineWidth = stringIDToTypeID( "strokeStyleLineWidth" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc60.putUnitDouble( idstrokeStyleLineWidth, idPxl, 2.510000 );
            var idstrokeStyleLineDashOffset = stringIDToTypeID( "strokeStyleLineDashOffset" );
            var idPnt = charIDToTypeID( "#Pnt" );
            desc60.putUnitDouble( idstrokeStyleLineDashOffset, idPnt, 0.000000 );
            var idstrokeStyleMiterLimit = stringIDToTypeID( "strokeStyleMiterLimit" );
            desc60.putDouble( idstrokeStyleMiterLimit, 100.000000 );
            var idstrokeStyleLineCapType = stringIDToTypeID( "strokeStyleLineCapType" );
            var idstrokeStyleLineCapType = stringIDToTypeID( "strokeStyleLineCapType" );
            var idstrokeStyleButtCap = stringIDToTypeID( "strokeStyleButtCap" );
            desc60.putEnumerated( idstrokeStyleLineCapType, idstrokeStyleLineCapType, idstrokeStyleButtCap );
            var idstrokeStyleLineJoinType = stringIDToTypeID( "strokeStyleLineJoinType" );
            var idstrokeStyleLineJoinType = stringIDToTypeID( "strokeStyleLineJoinType" );
            var idstrokeStyleMiterJoin = stringIDToTypeID( "strokeStyleMiterJoin" );
            desc60.putEnumerated( idstrokeStyleLineJoinType, idstrokeStyleLineJoinType, idstrokeStyleMiterJoin );
            var idstrokeStyleLineAlignment = stringIDToTypeID( "strokeStyleLineAlignment" );
            var idstrokeStyleLineAlignment = stringIDToTypeID( "strokeStyleLineAlignment" );
            var idstrokeStyleAlignCenter = stringIDToTypeID( "strokeStyleAlignCenter" );
            desc60.putEnumerated( idstrokeStyleLineAlignment, idstrokeStyleLineAlignment, idstrokeStyleAlignCenter );
            var idstrokeStyleScaleLock = stringIDToTypeID( "strokeStyleScaleLock" );
            desc60.putBoolean( idstrokeStyleScaleLock, false );
            var idstrokeStyleStrokeAdjust = stringIDToTypeID( "strokeStyleStrokeAdjust" );
            desc60.putBoolean( idstrokeStyleStrokeAdjust, false );
            var idstrokeStyleLineDashSet = stringIDToTypeID( "strokeStyleLineDashSet" );
                var list5 = new ActionList();
                var idNne = charIDToTypeID( "#Nne" );
                list5.putUnitDouble( idNne, 4.000000 );
                var idNne = charIDToTypeID( "#Nne" );
                list5.putUnitDouble( idNne, 2.000000 );
            desc60.putList( idstrokeStyleLineDashSet, list5 );
            var idstrokeStyleBlendMode = stringIDToTypeID( "strokeStyleBlendMode" );
            var idBlnM = charIDToTypeID( "BlnM" );
            var idNrml = charIDToTypeID( "Nrml" );
            desc60.putEnumerated( idstrokeStyleBlendMode, idBlnM, idNrml );
            var idstrokeStyleOpacity = stringIDToTypeID( "strokeStyleOpacity" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc60.putUnitDouble( idstrokeStyleOpacity, idPrc, 100.000000 );
            var idstrokeStyleContent = stringIDToTypeID( "strokeStyleContent" );
                var desc61 = new ActionDescriptor();
                var idClr = charIDToTypeID( "Clr " );
                    var desc62 = new ActionDescriptor();
                    var idRd = charIDToTypeID( "Rd  " );
                    desc62.putDouble( idRd, 237.281931 );
                    var idGrn = charIDToTypeID( "Grn " );
                    desc62.putDouble( idGrn, 28.433876 );
                    var idBl = charIDToTypeID( "Bl  " );
                    desc62.putDouble( idBl, 36.261481 );
                var idRGBC = charIDToTypeID( "RGBC" );
                desc61.putObject( idClr, idRGBC, desc62 );
            var idsolidColorLayer = stringIDToTypeID( "solidColorLayer" );
            desc60.putObject( idstrokeStyleContent, idsolidColorLayer, desc61 );
            var idstrokeStyleResolution = stringIDToTypeID( "strokeStyleResolution" );
            desc60.putDouble( idstrokeStyleResolution, 72.000000 );
        var idstrokeStyle = stringIDToTypeID( "strokeStyle" );
        desc52.putObject( idstrokeStyle, idstrokeStyle, desc60 );
    var idcontentLayer = stringIDToTypeID( "contentLayer" );
    desc51.putObject( idUsng, idcontentLayer, desc52 );
    var idLyrI = charIDToTypeID( "LyrI" );
    desc51.putInteger( idLyrI, 4 );
executeAction( idMk, desc51, DialogModes.NO );
Inspiring
October 23, 2020

It would be very helpful and much appreciated if the pixel option for the line tool could be added as a legacy setting or at least a similar tool could be created. It really helps to speed up environment design that has a lot of architecture.

Mark C. Dahm
Community Manager
Community Manager
October 22, 2020

Thanks, Jake, for this info; very helpful.

jmyler
Participating Frequently
October 22, 2020

  I know that everyone has a different way of working, and that Photoshop isnt as concerned with illustrators as it is with photographers and designers, but I work in comics and I often have to create lineart with...you know...lines. And this change although adding new options actually makes things so much more slow.  I LIKED the line tool to have Pixel option because I could easily lay down a bunch of strait lines very quickly. With this new change, you make a line, and it immediately is a shape with endpoints so your next mouseclick cant create a line in that spot (since now it presumes you want to position an endpoint, not immediately create a new line from that spot) I could easily connect endpoints before by letting go of line, then starting my next line where the cursor was! 

As it stands, I have to move to another program like Clipstudio or Procreate to create some lines. 

Image is not available

Dominik Sourcé
Inspiring
October 22, 2020

There is an ongoing discussion about various changes to the line tool including the pixel option here: https://feedback.photoshop.com/conversations/photoshop/photoshop-220-where-is-the-line-weightwidth-option/5f9039ee917fbb3a9931cc53

Maybe you're interested ...

jmyler
Participating Frequently
October 22, 2020

I also  noticed this change. Its just greyed out. The pixel line tool is super helpful for a lot of quick tasks... so this is actually kind of annoying! In order to draw some lineart I needed yesterday for a comic I had to take my drawing out of photoshop and use a different program.