Você já sabe usar os snippets, já sabe o que cada um deles faz. Muitas vezes, no entanto, eles parecem um tanto quanto incômodos de serem usados, pois aquilo que eles fazem não é exatamente o que você quer ou sua aplicação deixa o script muito lento devido às constantes intervenções que obriga ao usuário. Assim, sempre que puder, você pode fazer alterações nos Snippets para que se adaptem ao trabalho que quer deles.
Suponhamos, você gravou um papel de carta e quer que esse tenha sempre a altura da imagem que o usuário escolher, pois há pessoas que gostam de papéis com altura entre 300 e 350px, enquanto outras preferem-no com mais altura. Como fazer para que esse trabalho, que eu estou gravando com um tile, tenha sempre o seamless necessário? Ora, é sabido que o seamless só se manterá se o tile tiver a mesma altura do papel de carta. O que fazer?
Pegue o seu snippet imagem nova abrindo com cálculo de tamanho. É um snippet muito fácil de ser compreendido, bastando prestar atenção e tentar interpretá-lo.
Todos já sabem que o utilizamos para fazer abrir a imagem do papel de carta com a altura da imagem utilizada. Quando preparamos um script para papel de carta em que o trabalho do back é no próprio papel, é a ele que devemos recorrer para que a imagem de 1024 de largura tenha a altura que o usuário escolher, bastando deixar a sua imagem com a altura de sua preferência (até 600px, se ele quiser um back fixo).
O snippet é muito claro. Em primeiro lugar, ele faz o PSP "ler" as dimensões da imagem:
Width = App.ActiveDocument.Width
Height = App.ActiveDocument.Height
calcwidth = Width + 70
calcheight = Height + 70
Width, em Inglês, quer dizer largura, Height, comprimento. As duas primeiras linhas do Snippet são instruções para que o programa leia as dimensões da imagem aberta na área de trabalho. Essas linhas devem estar sempre colocadas no início do script, quando apenas a imagem escolhida estiver ali. As outras duas linhas são sobre como, de fato, queremos que o papel abra. Geralmente, acrescentamos +10 ou 20px para que a imagem tenha uma folga e não fique demasiado perto da imagem do próximo papel, evitando problemas com emendas.
Assim, calcwidth seria o cálculo para o tamanho da Width e calheight o novo tamanho da altura. O snuippet que vocês têm está com +70, porque foi retirado de uma tag que precisava dessa medida. Como estamos falando de papel de carta, a primeira coisaa fazer é mudar esse cálculo. Conforme o trabalho, com mask ou tube, o máximo que precisamos para um papel é a altura da imagem mais 10 ou 20px. O texto do snippet mudaria então para:
Width = App.ActiveDocument.Width
Height = App.ActiveDocument.Height
calcwidth = Width + 10
calcheight = Height + 10
Obs.: Às vezes, não precisamos do cálculo da largura mas deixamos esse cálculo aí para não dar erros. Se estiver fazendo uma tag, essa quantia (10 ) pode ser diferente para a altura e a largura, não há necessidade de serem iguais..
Para que esse cálculo funcione, no entanto, precisamos fazer as mudanças no nosso script, além de colocar esse comando.
Veja, a primeira coisa que precisamos é mudar o comando da primeira imagem, o tile, pois, como vimos anteriormente, ele precisa ter a mesma altura que o papel e deve ser quadrado. Então, nosso comando, que era assim,
# FileNew
App.Do( Environment, 'NewFile', {
'Width': 200,
'Height': 200,
'ColorDepth': App.Constants.Colordepth.SixteenMillionColor,
'DimensionUnits': App.Constants.DimensionType.Pixels,
Terá que ficar assim:
# FileNew
App.Do( Environment, 'NewFile', {
'Width': calcheight,
'Height': calcheight,
'ColorDepth': App.Constants.Colordepth.SixteenMillionColor,
'DimensionUnits': App.Constants.DimensionType.Pixels,
Por que usamos duas vezes o calcheight? Por que queremos um tile quadrado e as duas dimensões dos quadrados devem ser obrigatoriamente iguais. Mas, calheight é o cálculo da altura!!! Não vai dar erro? Não, a definição do cálculo está correta e o PSP não vai se importar se o cálculo da altura entrar na largura. Mas lembre-se de usar o paste into selection, na hora de gravar o tile, pois, se usar o paste as new layer ou paste as selection, vai ficar um espaço vazio dentro do tile.
Obs.: Se o seu trabalho for uma tag que necessite do cálculo da largura, claro, você colocará ali o calcwidth.
Depois de pronto o tile, na sequência, você vai abrir a imagem transparente para o papel de carta. A largura é fixa, 1024, mas você quer que tenha a altura da imagem aberta pelo usuário, mais 10px de folga. Então edite o #FileNew da seguinte maneira.
# FileNew
App.Do( Environment, 'NewFile', {
'Width': 1024,
'Height': calcheight,
'ColorDepth': App.Constants.Colordepth.SixteenMillionColor,
'DimensionUnits': App.Constants.DimensionType.Pixels,
Pronto! Agora, a imagem para o tile vai abrir quadrada, com altura e largura definidas pelas dimensões da imagem aberta pelo usuário.
Mas o meu tile é muito complicado e vai ficar muito longe a leitura do tamanho e a abertura do papel de carta. Isso não terá importância, pois as novas dimensões já estarão registradas na memória do programa, mas, há sim um impedimento para o uso desse snippet: não pode haver uma pausa entre o cálculo do tamanho e a abertura das imagens transparentes, pois, como sabem, antes de cada pausa o script se fecha e abre novamente, como se fosse outro script para continuar o trabalho. Aí, o PSP "esquece" as instruções anteriores.
Bom trabalho!
|