3 Replies Latest reply on Dec 8, 2018 1:33 PM by JJMack

    Duplicating Smart Objects Does Not Save File Size?

    viveredesign Level 1

      I assumed that duplicating smart object layers would save file size, but it seems that in the current release, this is worse than duplicating flat/rasterized layers!

       

      If I have 5 copies of the same smart object, the resulting .psd file is 5X larger! Does this seem right? Is this expected? A PS file should contain one copy of a smart object even if it's used multiple times, thus keeping the file size low compared to multiple rasterized/flat layers.

       

      Perhaps PS chooses to also save a separate rasterized version of each smart object layer for perceived performance (that includes each layers' custom effects, transforms, etc.)? If so, is there a way to turn this off and reduce the file size in lieu of such performance gains?

       

      To reproduce:

      • import image as layer, save as .psd file, note the file size
      • convert this single layer to a smart object, save the .psd file, note the file size (not expected to go down)
      • duplicate the smart object (not "as a copy", use ctrl-j), so that you have two layers both pointing to the same smart object--i.e., if you edit one of these smart objects and save it, the duplicate smart object shows the same edits.
      • save the .psd file, note the file size has roughly doubled even though you have two duplicate layers!
      • duplicate the same smart object layer 5 times, save as .psd file, and note the file size is now ~5X larger!
      • rasterize all these smart object layers, save as .psd file, and note that the file size is now smaller!
        • 1. Re: Duplicating Smart Objects Does Not Save File Size?
          JJMack Most Valuable Participant

          How are you duplicating the smart object layer and is the smart object a  placed image file. If it is is it Place Embedded or Placed Linked.

           

          Smart object layers can be duplicate two different ways.

          1.) menu Layer>Duplicate Layer

          2.) menu Layer>Smart Objects>New Smart Object via Copy

           

          Smart object layer are like Pixels layer with some additional  overhead  There are some benefits and some restrictions when you use smart object layers.   Each  Layer has  Pixels rendered for the layers content.   There is also an associated Transform for the pixel fot the layer.   Beside the late pixels there is the layer Object, The layer object may also be share by other smart object layers  created  using  menu Layer>Duplicate Layer.  Smart Object Layer  create using menu Layer>Smart Objects>New Smart Object via Copy have independent object not a shared object.

           

          A Smart Object Layer  object can be huge.  If you place embedded a huge image file the layer object contains a copy of the file placed in.  If you duplicate that layer  using menu Layer>Smart Objects>New Smart Object via Copy your document grows in huge leaps in size.

           

          Each Smart Object layer that share an Object still has Pixels for the layer that layer associated transform created from the Pixels rendered for the Smar Object. Other overhead beside transform data is the data to recorded the shard object information. The transform need to know where the pixels rendered for the shared object are for example.

           

          Also Import dose not support image files  menu File>Place does. Even if you  import an image as a single layer using copy paste then convert the image layer to a smart object the document will grow in size converying the layer.   The original image layer need to be made into an object,  That object needs to have pixels rendered for the object content  and a transform  for  the layers content  to create the layers actual pixels. You may feel the that  not how it would be done.   Look at it this way you could have targeted  any number of layer and converted  them to a smart object layer in that case the smart Object would be the number of layer you targeted their contents the layer mask the styles the opacity their fill, blending and  the pixels rendered for the object content  would be the composite  of the those targeted layers and it would have a transform over then to create the layers actual pixels.  The only different to your casee is the number of layers involved.

          2 people found this helpful
          • 2. Re: Duplicating Smart Objects Does Not Save File Size?
            viveredesign Level 1

            Thanks for the expanded insight.

             

            I assumed that duplicated smart objects (not new smart-object copies) would conserve file size (as compared to duplicating pixels), but your explanation that PS generates/keeps rasterized copies of all smart object layers (regardless of whether they're simple duplicates) confirms my observations that duplicating smart objects do indeed blow-up the file size even though they're the exact same pixels.

             

            So there's no file-size-reduction benefit to using smart-objects or links in most all cases (except perhaps if the smart-object contains many layers).

            • 3. Re: Duplicating Smart Objects Does Not Save File Size?
              JJMack Most Valuable Participant

              viveredesign  wrote

               

              I assumed that duplicated smart objects (not new smart-object copies) would conserve file size (as compared to duplicating pixels), but your explanation that PS generates/keeps rasterized copies of all smart object layers (regardless of whether they're simple duplicates) confirms my observations that duplicating smart objects do indeed blow-up the file size even though they're the exact same pixels.

              The Pixels rendered for the Shared Smart object are set in concrete and can not be changed with any Photoshop tools.   These are not the a smart object layer pixels and they may or may not be the same  the pixels a smart object layer has. Every smart object layer has and associate transform for these pixels that can not be change the  interpolate pixels are the smart object layers pixels.  You  can have a single Smarts object shared by many smart object layer  each smart object layer has it own associated transform and interpolated pixel.  It is possible that none layer  of the smart object layers that share the same object  have the  pixels that were rendered for the smart object. All the layer may have a different number of pixels.  None of the layers may have pixels that are the same as an other layer.  Layers have their own pixels.

               

              The interpolated pixels can be further change by smart filters  and why  smart filters need to be reapplied in order.