3 Replies Latest reply on Apr 9, 2015 7:38 AM by c.pfaffenbichler

    get tiff compression type

    suresh0208 Level 1

      Hi,

       

      I want to a series of  TIFF files compression [LZW or NONE] in a folder.

       

      Can anyone help me in this . . .

       

      The Script goes here:

       

      #target photoshop

      var myInputFolder = Folder.selectDialog ("INPUT");

      if(myInputFolder!=null){

          var myFiles = myInputFolder.getFiles(/\.(tif)$/i);

          for(var fileIndex=0;fileIndex<myFiles.length;fileIndex++)

          {

              var currentFile = myFiles[fileIndex];

              if(currentFile instanceof File)

              {

                      if(currentFile.hidden) continue;

                          var doc = app.open(currentFile);

                         

                          if(doc.encoding != TIFFEncoding.TIFFLZW)

                          {

                              //Here I want to write code for checking compression of TIFF.

                               alert("Compression should be NONE")

                           }

                          }

                      }

                  }

       

      Thanks In Advance,

       

      Suresh.N.

        • 1. Re: get tiff compression type
          Philip Cord Level 4

          Here is a function to get the compression.

           

          #target photoshop;
          var file = File("/j/testing/tifs/11.tif");
          
          alert(getTifCompession(file));
          
          
          function getTifCompession(file){
          if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
          var xmpf = new XMPFile(file.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);
          var xmp = xmpf.getXMP();
           try{
          var comp = xmp.getProperty( XMPConst.NS_TIFF, "Compression" ).toString();
          var result = '';
          switch( Number(comp) ){  
               case 1:  result = "none"; break;  
               case 5:  result = "lzw";  break;
               case 7:  result = "jpg";  break;
               case 8:  result =  "zip";  break;
               default: result =  "unknown";  
          } 
          return result;
          }catch(e){return undefined;}
          };
          
          
          
          
          
          • 2. Re: get tiff compression type
            suresh0208 Level 1

            Hi,

             

            Thanks for the reply.

             

            But I want to Check number of TIFF files in a folder (For E.g 100 files). If the TIFF compression not equal to NONE It should give Error. Script is Working with the single file.

             

            I tried for Multiple files like this. But results nothing. Can you help you in this.

             

            Code goes here:

            #target photoshop

            var myInputFolder = Folder.selectDialog ("INPUT");

            if(myInputFolder!=null){

                var myFiles = myInputFolder.getFiles(/\.(tif)$/i);

                for(var fileIndex=0;fileIndex<myFiles.length;fileIndex++)

                {

                    var currentFile = myFiles[fileIndex];

                    if(currentFile instanceof File)

                    {

                            if(currentFile.hidden) continue;

                                var file = app.open(currentFile);

                                                                      

            function getTifCompession(file){ 

            if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript'); 

            var xmpf = new XMPFile(file.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ); 

            var xmp = xmpf.getXMP(); 

            try{ 

            var comp = xmp.getProperty( XMPConst.NS_TIFF, "Compression" ).toString(); 

            var result = ''; 

            switch( Number(comp) ){   

                 case 1:  result = "none"; break;   

                 case 5:  result = "lzw";  break; 

                 case 7:  result = "jpg";  break; 

                 case 8:  result =  "zip";  break; 

                 default: result =  "unknown";   

            }  

            return result; 

            }catch(e){return undefined;} 

            }; 

            alert(getTifCompession(file));

                                }

                            }

                        }

             

            Thanks in Advance,

             

            Regards,

            Suresh.N.

            • 3. Re: get tiff compression type
              c.pfaffenbichler Level 9

              Does this help?

              // tif compression check by philip cord;

              // 2015, use it at your own risk;

              #target photoshop

              var files = selectTiffFile(true);

              var theErrors = new Array;

              for (var m = 0; m < files.length; m++) {

              var thisFile = files[m];

              if (getTifCompession(thisFile) != "none") {theErrors.push(thisFile)}

              };

              alert("these files are compressed\n"+theErrors.join("\n")); 

              ////////////////////////////////////

              ////// select file //////

              function selectTiffFile (multi) {

              if (multi == true) {var theString = "please select tiff files"}

              else {var theString = "please select one file"};

              if ($.os.search(/windows/i) != -1) {var theFiles = File.openDialog (theString, '*.tif;*.tiff', multi)}

              else {var theFiles = File.openDialog (theString, getFiles, multi)};

              ////// filter files  for mac //////

              function getFiles (theFile) {

                  if (theFile.name.match(/\.(tif|tiff)$/i) || theFile.constructor.name == "Folder") {

                      return true

                      };

                };

              return theFiles

              };

              // by philip cord;

              function getTifCompession(file){ 

              if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript'); 

              var xmpf = new XMPFile(file.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ); 

              var xmp = xmpf.getXMP(); 

              try{ 

              var comp = xmp.getProperty( XMPConst.NS_TIFF, "Compression" ).toString(); 

              var result = ''; 

              switch( Number(comp) ){   

                   case 1:  result = "none"; break;   

                   case 5:  result = "lzw";  break; 

                   case 7:  result = "jpg";  break; 

                   case 8:  result =  "zip";  break; 

                   default: result =  "unknown";   

              }  

              return result; 

              }catch(e){return undefined;} 

              };