PSD2Imgs - Python 2x

2017’nin 7. ayında yazmışım fakat İngilizce yazmışım neden öyle yaptım hatırlamıyorum.

Yüklenmesi gereken modüller

  • psd-tools
  • Pillow
  • packbits

Örnek kullanım

python psd2imgs.py sample.psd png test

Kaynak kod

#-*- coding: utf-8 -*-

# Name:		Adobe File Converter
# Release:	07.01.2017
# PSD -> png jpg gif bmp ico ppm pgm pbm tiff

import Tkinter as tk
import Tkconstants, tkFileDialog
import os,sys
from psd_tools import PSDImage

class PSD2Imgs:
	def __init__(self):
		self.window() #Init components

	def window(self):
		# Top Window Prop
		wndSpecs = {
			"title" : "PSD2Imgs",
			"width" : 500,
			"height" : 300,
			"resizable" : False,
			"centerOfDesktop" : True
		}

		if wndSpecs['resizable'] == False:
			wnd.resizable(width=tk.FALSE,height=tk.FALSE)
		wnd.title(wndSpecs['title'])
		if wndSpecs['centerOfDesktop']:
			wnd.geometry("%sx%s+%s+%s"%(wndSpecs['width'],wndSpecs['height'],((wnd.winfo_screenwidth() - wndSpecs['width']) / 2),((wnd.winfo_screenheight() - wndSpecs['height']) / 2)))
		else:
			wnd.geometry("%sx%s"%(wndSpecs['width'],wndSpecs['height']))

		# Components
		self.openFileBtn = tk.Button(text="Open Photoshop PSD File", command=self.act_openFileBtn, font=('Helvetica', 15))
		self.openFileBtn.place(relx="0.25")

		InfoLbl = tk.Label(text="Info",font=('Helvetica', 20))
		InfoLbl.place(relx="0.0",rely="0.11")

	def act_openFileBtn(self):
		# define options for opening a file
		self.fileOpenOptions = {}
		self.fileOpenOptions['defaultextension'] = '.psd'
		self.fileOpenOptions['filetypes'] = [('Adobe Photoshop', '.psd')]
		self.fileOpenOptions['initialdir'] = os.getcwd()
		self.fileOpenOptions['initialfile'] = 'sample.psd'
		#self.fileOpenOptions['parent'] = root
		self.fileOpenOptions['title'] = 'Select your want convert file'

		# define options for saving a file
		self.fileSavenOptions = {}
		self.fileSavenOptions['defaultextension'] = '.png'
		self.fileSavenOptions['initialdir'] = os.getcwd()
		self.fileSavenOptions['initialfile'] = 'sample.png'
		self.fileSavenOptions['filetypes'] = [('Portable Network Graphics', '.png'),('Joint Photographic Experts Group', '.jpg'),('Graphics Interchange Format', '.gif'),('Windows Bitmap', '.bmp'),('Microsoft ICO File', '.ico'),('Portable PixMap', '.ppm'),('Portable GreyMap', '.pgm'),('Portable BitMap', '.pbm'),('Tagged Image File Format', '.tiff')]
		self.fileSavenOptions['title'] = 'Save your exported file'

		# defining options for opening a directory
		self.dirOptions = {}
		self.dirOptions['initialdir'] = os.getcwd()
		self.dirOptions['mustexist'] = False
		self.dirOptions['title'] = 'Select your want convert file'

		self.openedFile = tkFileDialog.askopenfilename(**self.fileOpenOptions)

		self.fileExt = fileExt = self.openedFile.split(".")[-1].lower()
		
		# Photoshop PSD File Select
		if fileExt == "psd":
			self.opened_psdFile = opn_psdFile = PSDImage.load(self.openedFile)
			self.FileTypeLbl = tk.Label(text="File Type: Photoshop",font=('Helvetica', 22))
			self.FileTypeLbl.place(relx="0.0",rely="0.22")

			self.FileDimensionLbl = tk.Label(text="File Dimension: %sx%s"%(opn_psdFile.header.width,opn_psdFile.header.height),font=('Helvetica', 22))
			self.FileDimensionLbl.place(relx="0.0",rely="0.33")

			self.ColorModeLbl = tk.Label(text="Color Mode: %s"%str(opn_psdFile.header.color_mode),font=('Helvetica', 22))
			self.ColorModeLbl.place(relx="0.0",rely="0.44")

			self.TotalLayersLbl = tk.Label(text="Total Layers: %s"%len(opn_psdFile.layers),font=('Helvetica', 22))
			self.TotalLayersLbl.place(relx="0.0",rely="0.55")


			self.saveFileBtn = tk.Button(text="Save File", command=self.act_exportFile,font=('Helvetica', 22))
			self.saveFileBtn.place(relx="0.0",rely="0.70")

	def act_exportFile(self):
		if self.fileExt == "psd":
			export2File = tkFileDialog.asksaveasfilename(**self.fileSavenOptions)
			#print export2File //full path
			exp2file = self.opened_psdFile.as_PIL()
			exp2file.save(export2File)

num_args = len(sys.argv)


if num_args == 1:
	wnd = tk.Tk()
	vx2i = PSD2Imgs()
	wnd.mainloop()
else:
	print "PSD2Imgs v0.1 - @fatihmert\n"
	print "How to use psd2imgs\npsd2imgs.exe <psd_file_name.psd> <to_file_type> <save_name>\npsd2imgs.exe sample.psd png test"
	supportedFiles = ["png","jpg","gif","ico","bmp","ppm","pgm","pbm","tiff"]

	va_list = sys.argv
	
	if va_list[1].split(".")[-1].lower() == "psd":
		if va_list[2] in supportedFiles:
			opn_psdFile = PSDImage.load(va_list[1])
			print "\nFile Dimension: %sx%s"%(opn_psdFile.header.width,opn_psdFile.header.height)
			print "Color Mode: %s"%str(opn_psdFile.header.color_mode)
			print "Total Layers: %s"%len(opn_psdFile.layers)

			newFileFullName = "%s.%s"%(va_list[3],va_list[2])
			exp2file = opn_psdFile.as_PIL()
			exp2file.save(newFileFullName)

			print "%s file converted succesfuly to %s file."%(va_list[1],newFileFullName)
		else:
			print "This application convertable support files: png jpg gif ico bmp ppm pgm pbm tiff"
	else:
		print "This application just PSD convert."
3 Beğeni

Ellerinize sağlık, güzel bir proje olmuş.

kodun amacı nedir acaba?

Photoshop (PSD) dosyalarını: png jpg gif bmp ico ppm pgm pbm tiff dosya formatlarını dönüştürüyor.

1 Beğeni