snipplrCallback({"id":72974,"title":"export-jpeg-files-with-each-layerset-photoshop-python-with-pyqt","source":"
import<\/span> sys<\/span><\/div><\/li> from<\/span> PyQt4.QtGui<\/span> import<\/span> *<\/div><\/li> import<\/span> comtypes.client<\/span><\/div><\/li> <\/div><\/li> class<\/span> LayerSetsExporter(<\/span>QWidget)<\/span>:<\/div><\/li> <\/div><\/li> def<\/span> __init__<\/span>(<\/span>self<\/span>,<\/span> parent =<\/span> None<\/span>)<\/span>:<\/div><\/li> super<\/span>(<\/span>LayerSetsExporter,<\/span> self<\/span>)<\/span>.__init__<\/span>(<\/span>parent)<\/span><\/div><\/li> self<\/span>.createLayout<\/span>(<\/span>)<\/span><\/div><\/li> self<\/span>.createConnection<\/span>(<\/span>)<\/span><\/div><\/li> <\/div><\/li> def<\/span> setLayerSetsVisible(<\/span>self<\/span>,<\/span> layerSets,<\/span> state)<\/span>:<\/div><\/li> for<\/span> layerSet in<\/span> layerSets:<\/div><\/li> layerSet.visible<\/span> =<\/span> False<\/span><\/div><\/li> <\/div><\/li> def<\/span> processRun(<\/span>self<\/span>)<\/span>:<\/div><\/li> outputPath =<\/span> 'D:\/Python\/Temp\/'<\/span><\/div><\/li> <\/div><\/li> app =<\/span> comtypes.client<\/span>.CreateObject<\/span>(<\/span>'Photoshop.Application'<\/span>)<\/span><\/div><\/li> doc =<\/span> app.activeDocument<\/span><\/div><\/li> <\/div><\/li> optionJpg =<\/span> comtypes.client<\/span>.CreateObject<\/span>(<\/span>'Photoshop.JPEGSaveOptions'<\/span>)<\/span><\/div><\/li> optionJpg.quality<\/span> =<\/span> 8<\/span><\/div><\/li> <\/div><\/li> count =<\/span> 0<\/span><\/div><\/li> layerSets =<\/span> doc.layerSets<\/span><\/div><\/li> for<\/span> layerSet in<\/span> layerSets:<\/div><\/li> self<\/span>.setLayerSetsVisible<\/span>(<\/span>layerSets,<\/span> False<\/span>)<\/span><\/div><\/li> layerSet.visible<\/span> =<\/span> True<\/span><\/div><\/li> doc.saveAs<\/span>(<\/span>outputPath + str<\/span>(<\/span>count)<\/span> + '.jpg'<\/span>,<\/span> optionJpg,<\/span> True<\/span>)<\/span><\/div><\/li> count +=<\/span> 1<\/span><\/div><\/li> <\/div><\/li> def<\/span> createLayout(<\/span>self<\/span>)<\/span>:<\/div><\/li> self<\/span>.btnRun<\/span> =<\/span> QPushButton(<\/span>'&Run'<\/span>)<\/span><\/div><\/li> layout =<\/span> QVBoxLayout(<\/span>)<\/span><\/div><\/li> layout.addWidget<\/span>(<\/span>self<\/span>.btnRun<\/span>)<\/span><\/div><\/li> <\/div><\/li> self<\/span>.resize<\/span>(<\/span>200<\/span>,<\/span>100<\/span>)<\/span><\/div><\/li> self<\/span>.setWindowTitle<\/span>(<\/span>'PS LayerSets Exporter'<\/span>)<\/span><\/div><\/li> self<\/span>.setLayout<\/span>(<\/span>layout)<\/span><\/div><\/li> <\/div><\/li> def<\/span> createConnection(<\/span>self<\/span>)<\/span>:<\/div><\/li> self<\/span>.btnRun<\/span>.clicked<\/span>.connect<\/span>(<\/span>self<\/span>.processRun<\/span>)<\/span><\/div><\/li> <\/div><\/li> qApp =<\/span> QApplication(<\/span>sys<\/span>.argv<\/span>)<\/span><\/div><\/li> <\/div><\/li> exporter =<\/span> LayerSetsExporter(<\/span>)<\/span><\/div><\/li> exporter.show<\/span>(<\/span>)<\/span><\/div><\/li> <\/div><\/li> qApp.exec_<\/span>