Vai al contenuto
pietro909

vrimg2exr Automator

Recommended Posts

Ciao,

stamattina mi sono rotto le scatole di estrarre ogni singolo canale a mano dai .vrimg e rinominare poi i files così ho scritto questo piccolo tool in python:

"""

VRConv.py: An utility to extract all channels from .vrimg frames, renaming them and

adding a progressive number before extension to find them easily

Pietro Grandi © 2011 // pietro909.blogspot.com

Released under GNU/GPL License

usage: python vrconv [file(*).vrimg]

"""

import sys

import string

import os

import glob

name="vrconv"

vrimg2exr="vrimg2exr.exe" #PUT HERE YOUR VRIMG2EXR PATH

info_file=".vrconv.txt"

source=sys.argv[1]

frames=glob.glob(source) #check for more than one file

n_frames=len(frames); #number of frames

source_file=frames[0].strip("'") #strip out the file name of first frame

print("{0}: {1} frames found".format(name,n_frames))

os.system(vrimg2exr+" -info "+source_file+" > "+info_file) #taking some infos...

f = open(info_file) #opening text file with -info output

k=0 #counter

current=f.readline() #current line readed

v_channels=[()] #initialize list for channels

# Isolating channel info in text file

while current :

index=current.find('"')

if index!=-1 :

rev_index=current.find('"',index+1)+1 # +1 is to keep quotes

v_channels.append(current[index:rev_index])

k+=1

current=f.readline()

f.close() #closing temporary file

for n in range(0, n_frames) :

filename_vrimg=frames[n].strip("'") #clean name without quotes

filename_basic=filename_vrimg.strip('.vrimg') #clean name without extension

print("{0}: {1} channels found in {2}. Extracting...".format(name, k-1,filename_vrimg))

for i in range(2,k) :

print("{0}: Working on {1} channel".format(name,v_channels))

os.system(vrimg2exr+" "+filename_vrimg+" "+"-channel "+v_channels) #extracting

filename_new=filename_basic+v_channels.strip('"')+"."+str(n)+".exr" #new file name

print("{0}: {1} is now {2}".format(name,filename_basic+".exr",filename_new))

os.rename((filename_basic+".exr"),filename_new) #rename file

os.remove(info_file) #deleting temporary file

Lo sto usando da cinque ore intensamente e funziona bene, se volete usatelo e fatemi sapere se ci sono problemi. Io non sono un programmatore quindi il codice potrebbe essere poco ortodosso ma funziona e tanto mi basta :-) se qualcuno volesse migliorarlo è tanto di guadagnato.

Ps: so che esiste GUI4 ma non mi piace, con la riga di comando riesco a gestire tutto più rapidamente; lancio anche diverse istanze dello script e mi converte un sacco di frames.

Ciao!

pietro

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×