Colaboradores

Tutoriais de Photoshop

Aprenda essa poderosa ferramenta de design com tutoriais passo a passo. Sem mistério, siga as instruções e aprenda ainda mais

SEO, Search Engine Optimization

Otimização de Sites é o conjunto de estratégias com o objetivo de potencializar e melhorar o posicionamento de um site nas páginas de resultados naturais (orgânicos) nos sites de busca.

CMS é um acrônimo para Content Management System ou Sistema Gerenciador de Conteúdo.

Assim como outros CMS, o Joomla ajuda a resolver um problema muito comum, que é o custo de se criar e manter um web site ou web portal razoavelmente complexo, repleto de recursos e conteúdo e que tem que ser mantido por várias pessoas com pouco ou nenhum conhecimento técnico.

Download de Brushes

Faça o download de varios brushes para photoshop. Dividido em varioas categorias para melhor seu design ainda mais

Download de Vetores

Abaixe arquivos em AI, PNG,EPG completamente editaveis! Aumente sua criatividade com varias formas diferentes.

10.17.2011

SEO do WordPress

Como usar Permalinks para otimizar seu site WordPress

WordPress lhe dá a liberdade para definir seus links do jeito que você quer que eles se parecem. Na área administrativa do WordPress ir a Configurações -> Permalinks . Nesta página você pode escolher entre várias opções pré-definidas ou usar uma estrutura personalizada para seus links.

Você pode escolher a Estrutura Personalizada opção e insira /%% postname / por exemplo. Isso fará com que seus links parecem com http://yourdomain.com/the-name-of-your-post/ . Ou você pode entrar categoria% /% /% postname% / se você quiser incluir o nome da sua categoria na URL. Você também pode adicionar texto personalizado ou outras variáveis ​​WordPress. A lista completa de variáveis ​​disponíveis que você pode usar em seu permalinks podem ser encontradas no site oficial do WordPress .

Como otimizar suas descrições de meta

Você deve entrar na meta descrição para cada uma de suas páginas. Use frases simples, mas informativo. Os motores de busca irá verificar o quão relevante é a sua descrição para o conteúdo real de sua página para ter certeza de que você descreve somente a página atual e evitar a adição de informações irrelevantes nesta descrição.

É uma boa prática de categorizar as suas mensagens em artigos. Uma vez que você ir para a Mensagens -> Categorias página em sua área administrativa, observe o campo de descrição disponível para cada categoria. WordPress irá tomar o que você entra neste campo e insira-o como descrição meta para a categoria.

Como otimizar suas imagens

É essencial ter o "título" e "alt" tags especificado para cada uma das imagens que você usa em seus posts. Os motores de busca, então, saber o que esta imagem é suposto representar. Digitar o título e tags alt para cada imagem que você usa, no entanto, pode ser uma tarefa demorada. Em vez disso, você pode usar o útil SEO Imagens amigável plugin. Para mais informações sobre como instalar este plugin, você pode conferir nosso tutorial sobre Como instalar plugins WordPress .

Depois de instalar o plugin, vá para Configurações - Imagens> SEO Friendly em sua área de administração do WordPress.Nesta página você pode especificar o ALT e tags de títulos para suas imagens. O plug-in dá a você a opção de usar variáveis ​​internas, como title% , name% e % da categoria . Com eles você pode definir as tags ALT e TITLE de suas imagens para o título de seu post, por exemplo. O plugin faz o resto. Isto poupa-lhe muito tempo e mantém suas imagens SEO-friendly.

Como usar títulos para otimizar seu blog WordPress

Você deve se certificar que você use o <h1> tag apenas para os títulos de seus posts.

Você deve usar alguns <h2> tags e como muitos <h3> tags como que você precisa para as outras rubricas nas suas mensagens. Isso permitirá que os motores de busca para indexar as informações importantes do seu site melhor. Um bom documento tem títulos e subtítulos, porque títulos de tornar mais fácil para determinar o assunto da página.

Sites de blog para melhor a prática de SEO é para definir o título do seu post em um cabeçalho1 tag. A maioria dos modelos de boa WordPress fazer isso. Se não, você deve modificar o tema, a fim de conseguir uma saída correta de suas páginas.

Font: http://www.siteground.com

Qual a diferença entre um perfil e uma conta? No Google Analytics

Um perfil é um grupo de regras e configurações que definem os relatórios. Isso inclui configurações de filtros e metas, valores padrão de página e URL e privilégios de acesso. Configurações de meta e de filtro, particularmente, tem um grande efeito nos dados em seus relatórios.

Em geral, um perfil corresponde a um domínio, mas também é possível criar perfis duplicados que usam o mesmo código de monitoramento (e, portanto, coletam os mesmo dados), mas com configurações diferentes. O resultado são diferentes dados de relatório para o mesmo site e gerados a partir do mesmo código-fonte. Essa configuração é útil para testar filtros ou quando um site tem mais de 4 metas e funis.

Uma conta é uma coleção de perfis.

Algumas configurações do Analytics aplicam-se globalmente em uma conta, enquanto outras são definidas ao nível do perfil. As configurações aplicadas ao nível do perfil incluem:

  • Painéis de relatório e categorias de relatório disponíveis
  • Moeda
  • Exclusões do parâmetro de consulta do URL
  • Metas e funis
  • Filtros
  • Acesso de nível de usuário
  • Importações de dados de custo do AdWords (a vinculação a uma conta do AdWords é feita no nível da conta)

As configurações a seguir são aplicadas globalmente à conta como um todo:

  • Acesso Admin (os administradores de conta têm acesso a todos os relatórios e perfis em sua conta).
  • Vinculação a uma conta do AdWords.

Font: http://www.google.com/support/googleanalytics/

O que significa Taxa de rejeição?

Taxa de rejeição é a porcentagem de visitas de páginas únicas ou visitas nas quais a pessoa saiu do seu site na página de entrada (destino). Use essa métrica para medir a qualidade da visita - uma taxa de rejeição alta geralmente indica que as páginas de entrada do site não são relevantes para os visitantes. Quanto mais atrativas forem suas páginas de destino, mais tempo os visitantes permanecerão no seu site e se transformarão em clientes. Você pode minimizar as taxas de rejeição adequando as páginas de destino em relação às suas palavras-chave e seus anúncios. As páginas de destino devem fornecer as informações e os serviços prometidos no texto do anúncio.

Para visualizar as taxas de rejeição do seu site, vá até o relatório Taxa de rejeição em Visitantes > Tendências dos visitantes > Taxa de rejeição.

Font: http://www.google.com/support/googleanalytics/

Novidades nos sistema de pagamento on-line

O pagamento é uma etapa crucial no processo de compra on-line e deve funcionar perfeitamente. Para o cliente, isso significa a possibilidade de realizar uma transação ágil, segura em um sistema que ofereça os principais meios de pagamento disponíveis no mercado. Atualmente, os e-consumidores optam pelos seguintes meios: cartão de crédito (68%); boleto bancário (25%); TEF - Transferência Eletrônica de Fundos (5%); e outros (2%), sendo que esses percentuais podem variar em decorrência do segmento de atuação e do perfil de seu público.

O lojista deve atender a essa necessidade de seus clientes, o que não é fácil nem barato devido a necessidade da contratação mínima de pelo menos três instituições para prestar esse serviço de forma satisfatória: um banco que ofereça a solução de pagamento por meio de boleto e transferência eletrônica e as duas maiores operadoras de cartões de crédito Visanet e Redecard. O processo de contratação das operadoras de cartões é burocrático e demorado e as tarifas são caras: uma taxa mensal fixa ao redor de 100 Reais mais um percentual ao redor de 4,5% sobre o valor da venda.  Os Bancos não ficam atrás, cobram cerca de 3 Reais para emitir um simples boleto e cerca de 0,50 centavos para realizar uma transferência eletrônica que nada mais é que um lançamento a crédito na conta corrente da loja e outra a débito na conta corrente do cliente comprador. Embora esses valores pareçam pequenos a primeira vista, para o lojista representam um ônus expressivo. Na venda de um CD de 20 Reais, por exemplo, o banco ficará com 15% da receita, para emitir um boleto, percentual maior do que a margem de lucro de muitas lojas virtuais.

Infelizmente nada indica que esse quadro deverá mudar nos próximos anos no que se refere ao quesito custo, no entanto, em termos de facilidade de implantação de sistemas de pagamento existe uma novidade positiva para o pequeno lojista:

Os integradores de Meios de Pagamento

Integradores de meios de pagamento são empresas que funcionam como intermediárias entre os fornecedores de soluções de pagamento (bancos e operadoras) e o lojista virtual. Elas fazem um contrato com o lojista e disponibilizam na loja um vasto leque de opções de pagamento que inclui os principais bancos e operadoras de cartão no país.  As principais vantagens são:

  • Menor burocracia para o lojista no momento da contratação e implantação;
  • A implantação é simples, bastando inserir código html no site;
  • Possibilidade de venda por cartão on-line por parte de um lojista que deseja atuar como pessoa física;
  • Maior liquidez em decorrência do menor prazo de recebimento de 14 dias em vez dos tradicionais 30 dias;
  • Processo de liberação ou não da venda é realizado pelo próprio integrador que realiza a análise de risco;
  • Risco de fraude zero, uma vez que esse risco é assumido pelo integrador.

Naturalmente, esse serviço tem um custo que gira em em torno de 2% da transação, sendo que esse valor é adicional aos custos dos bancos e operadoras já citados acima. Para empresas de maior porte e com alto volume de transações esse serviço pode não ser tão interessante. Mas para o pequeno lojista a contratação de um integrador de meios de pagamento pode facilitar imensamente o processo de implantação e gerenciamento de uma área nevrálgica na loja virtual.

Algumas das empresas que atualmente prestam serviços de integração de meios de pagamento são:  PAG-SEGURO, pertencente ao  grupo UOL,  BRASPAG, PagamentoDigital e iPagare.

Indique este artigo!

Dailton Felipini é mestre e graduado em administração de empresas pela Fundação Getúlio Vargas em São Paulo. Professor de comércio eletrônico na Universidade Mackenzie. Pesquisador, especialista em e-commerce, consultor e editor do site www.e-commerce.org.br.

Font: http://www.e-commerce.org.br/artigos/meiosdepagamento-integradores.php

Tutorial PHP – Sistema de Login Utilizando Sessões

Neste tutorial mostrarei como fazer um simples sistema de login de usuário, utilizando sessões, e com consultas ao banco de dados.

Dando continuiade aos tutorias de PHP, vou mostrar agora como criar um sistema de login de usuário, conectando com o banco de dados MySQL, e gravando os dados em Sessões.

Primeiramente, você deverá ter um servidor com suporte PHP instalado em seu computador, ou então alguma hospedagem, para testar a aplicação. Se desejar instalar um servidor e não souber como, leia o tutorial de instalação do EasyPHP que escrevi a alguns meses.

Vamos começar!

Primeiramente, crie o banco de dados. No nosso caso escolhi o nome “tutoriais”, pois irei utilizá-lo em outros artigos.

Depois que o banco estiver criado, o próximo passo é criar a tabela de usuarios.

CREATE TABLE IF NOT EXISTS `usuario` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`login` varchar(255) NOT NULL,
`senha` varchar(255) NOT NULL,
PRIMARY KEY (`id`));

Com a tabela criada, vamos agora povoá-la:

INSERT INTO `usuario` (`id`, `nome`, `login`, `senha`) VALUES (1, 'Arthur Sorriso', 'sorriso', '698dc19d489c4e4db73e28a713eab07b');

O campo senha, está encriptado no formato MD5, para uma melhor segurança. Aqui ela significa apenas “teste”.

Agora, o próximo passo é criar o formulário de login.

form_login.php

<strong>Sistema de Login</strong>
<form action="autenticar.php" method="post">
Login: <input name="login" type="text" />
Senha: <input name="senha" type="password" />
<input type="submit" value="Acessar" /></form>

Explicando o código:

A primeira linha é apenas um título, para ficar organizado. Nada de mais.

Na segunda começamos a criar o formulário. Utilizamos a tag form. O parâmetro action informa o destino que a página vai quando o botão “Acessar” é presionado. O parâmetro “method” pode ser “get” ou “post”. Para este utilizaremos “post” por ser mais seguro. No “get”, os dados do formulário serão enviados via endereço no browser, o que não queremos.

Na terceira linha criaremos o campo para o usuário digitar o login. Para isso utilizamos a tag “input” com tipo texto.

Na quarta linha criaremos o campo para senha. É análogo ao campo de login, a única diferença é o tipo, que agora passa a ser “password” de forma que quando o usuário digitar algo, isto aparecerar como asterisco(*).

Na quinta linha criaremos o botão para submeter o nosso formulário. Para isso utilizamos a tag “input” com tipo “submit”. E depois fechamos o formulário.

Vamos agora criar a página que fará a conexão com o nosso banco de dados.
connect.php

<?php
$host = "localhost";
$user = "root";
$password = "";
$dbname = "tutoriais";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

Explicando o código:

Primeiramente pegamos as variáveis necessárias para a conexão no banco de dados. A primeira é o host para conectar. Na maioria dos casos será localhost mesmo. Depois usuário e senha do banco de dados. E por último o banco de dados que será utilizado. Como falei lá em cima, o banco que utilizarei é o tutoriais.

Depois criaremos a nossa conexão. Para isso utilizaremos a função mysql_connect e passaremos como parâmetros as variáveis de cima. Caso ocorra um erro, será mostrada a mensagem escrita dentro do die().

Por fim fazemos a seleção do banco de dados que iremos utilizar.
Simples.

Agora vamos para a parte mais complicada, mas não difícil, do tutorial. A página que será responsável pela autenticação do usuário, criando assim sua sessão.

autenticar.php

<?php
include("connect.php");   //Recebendo os dados do formulário
$login = addslashes($_POST["login"]);
$senha = md5(addslashes($_POST["senha"]));   $sql = "SELECT * FROM usuario WHERE login = '$login' AND senha = '$senha'";
$rs = mysql_query($sql);   if(mysql_num_rows($rs) == 1) {
$user = mysql_fetch_array($rs);
//conferindo o login e senha para segurança
if($login == $user['login']){
//se entrou, entao o login é igual
if($senha == $user['senha']){
//se entrou, então a senha também é igual
$logado = "1";
$id_user = $user['id'];   //criando a sessão
session_start();
$_SESSION["id_user"] = $id_user;
$_SESSION["logado"] = $logado;   //depois que criarmos a sessão,
//vamos redirecionar para a página privada
header("Location: cadastro.php");
} else {
echo "A senha não confere!";   }
} else {
echo "O usuário não confere!";
}
}else {
echo "Usuário ou senha inválidos. Tente novamente.";
}
?>

Explicando o código:

Primeiramente incluimos o arquivo connect.php, a fim de estabelecermos a conexão com o banco de dados.

//Recebendo os dados do formulário
$login = addslashes($_POST["login"]);
$senha = md5(addslashes($_POST["senha"]));

Depois iremos receber as variáveis passadas pelo formulário. A função addslashes() serve para tratarmos nossas Strings recebidas, afim de evitar qualquer ataque de Sql Injection. Ela funciona da seguinte forma: sempre que encontrar qualquer aspa simples (’) ou dupla (”), ele adiciona uma barra invertida antes dela, ficando por exemplo \’. Uma das formas de invasão de sites mais simples é esta, digitando por exemplo ‘or 1=1 –. Esta é uma forma de se evitar. Continuando, a função md5() serve para encriptar a senha, já que a do banco está encriptada, a que se passa no formulário deverá também o ser, para comparamos.

Na próxima criamos uma variável para receber nossa string sql. Ela seleciona tudo (*) da tabela usuario, onde o login for igual ao da variável e a senha também. Simples.

Na próxima linha executamos o sql.

$sql = "SELECT * FROM usuario WHERE login = '$login' AND senha = '$senha'";
$rs = mysql_query($sql);
if(mysql_num_rows($rs) == 1) {

A seguir, testamos se o comando retornou alguma linha na consulta. Se não, o usuário e a senha poderá ter sido escrito errado, ou até mesmo não existir.

Se a consulta estiver correta, entraremos no nosso if.

$user = mysql_fetch_array($rs);
//conferindo o login e senha para segurança
if($login == $user['login']){
//se entrou, entao o login é igual
if($senha == $user['senha']){

A primeira linha dentro do if cria um array na variável $user com os dados coletados no banco de dados.

A seguir, conferimos se o conteúdo da variável é igual ao conteúdo vindo pelo formulário, evitando assim também alguma invasão.

Depois de conferidos o usuário e a senha, iremos ao próximo trecho:

//se entrou, então a senha também é igual
$logado = "1";
$id_user = $user['id'];
//criando a sessão
session_start();
$_SESSION["id_user"] = $id_user;
$_SESSION["logado"] = $logado;
//depois que criarmos a sessão, vamos redirecionar para a página privada
header("Location: cadastro.php");

Primeiramente atribuimos o valor 1 à variável $logado, já que o usuário escreveu tudo corretamente, e depois guardamos o id do usuário no banco na variável $id_user.

Agora podemos criar nossa sessão inicializando ela primeiramente, e depois criando suas variáveis.

A seguir, redirecionamos à página que queremos que os usuários logados acessem.

As próximas linhas são apenas fechamentos dos ifs e tratamentos de erros, com os elses.

Agora iremos para a nossa página privada, que só poderá ter seu conteúdo visto se o usuário estiver logado.

cadastro.php

<?php
//Iniciando a sessão
session_start();
include("connect.php");
if($_SESSION['logado'] == 1){
$sql = "SELECT * FROM usuario WHERE id = ".$_SESSION['id_user'];
$rs = mysql_query($sql);
if(mysql_num_rows($rs)) {
$user = mysql_fetch_array($rs);
echo "<strong> Olá ".$user['nome']."!</strong> ";
echo "<a href="logout.php">Sair</a>";
echo "Esta é sua página privada.
Nos próximos tutoriais continuaremos com esta página.";
}
}else {
echo "Você não está logado. Tudo está oculto para você!";
}
?>

Explicando o código:

session_start();
include("connect.php");
if($_SESSION['logado'] == 1){

Nas primeiras linhas iniciamos a nossa sessão, e incluímos o arquivo de conexão com o banco. A seguir testamos se usuário está realmente logado, vendo se o conteúdo da variável de sessão $_SESSION['logado'] é igual a 1, conforme definimos no arquivo autenticar.php.

$sql = "SELECT * FROM usuario WHERE id = ".$_SESSION['id_user'];
$rs = mysql_query($sql);
if(mysql_num_rows($rs)) {
$user = mysql_fetch_array($rs);
echo "<strong> Olá ".$user['nome']."!</strong> ";
echo "<a href="logout.php">Sair</a>";
echo "Esta é sua página privada.
Nos próximos tutoriais continuaremos com esta página.";
}

Agora escrevemos o nosso conteúdo oculto a não logados. Aqui fiz apenas uma simples consulta para pegar o nome do usuário, e exibí-lo nas boas vindas. Em seguida, apresentei o link para o usuário se deslogar do sistema.

O restante do código é apenas fechamento de if, e um else para os usuários não logados.

Por fim, a página de logout.

logout.php

<?php
//Iniciando a sessão
session_start();
//destruindo a sessão
session_destroy();   Header("Location: form_login.php");
?>

Nela nós destruimos a sessão, e redirecionamos para a página de login.

No próximo tutorial, irei abordar a parte de inserção no banco de dados. Pretendo fazê-lo como uma continuação deste, modificando nossa página cadastro.php, a fim de cadastrar novos usuários.

Bom por hoje é só. Espero ter sido claro no tutorial.

Se tiverem dúvidas é só perguntar nos comentários.

Arquivos do artigo para download

Font: http://www.arthursorriso.com.br/index.php/tutorial-php-sistema-de-login-utilizando-sessoes/

10.06.2011

Como atualizar seu navegador

Um navegador atualizado é muito importante para a segurança dos dados do usuário. Não é a toa que os desenvolvedores anunciam atualizações. Se elas são lançadas, cabe ao usuário ir lá e pegar. Isso é uma recomendação de todos que trabalham com segurança na internet.

Muita gente pensa em atualizar o browser, mas não sabe como fazer isso. Por isso, resolvi criar esse artigo para sanar essa dúvida.

Firefox

firefox 4 update

O Firefox tem um sistema de atualização bem simples, mas que foi levemente modificado na versão 4.

Firefox 3.6 e anteriores
Vá no menu Ajuda - Verificar atualizações. Confirme a atualização, espere o download ser feito e reinicie o navegador.

atualização do firefox 3

Firefox 4
Vá no menu Firefox - Ajuda - Sobre o Firefox. Espere o download da nova versão e reinicie o navegador.

atualização do firefox 4

Atualizar Firefox no Linux
Para atualizar o Firefox 3 e Firefox 4 no Linux, é preciso abrir o navegador com privilégios de usuário root e seguir os passos anteriores. Para isso, digite no Terminal:

$ su
[digite sua senha]
# firefox

Caso use o Firefox 4 beta no Linux, digite firefox-4.0.
Caso utilize o repositório da Mozilla, basta digitar o comando apt-get update e apt-get upgrade, necessariamente nessa ordem.
Veja também:
Entenda o gerenciador de complementos do Firefox
Como ter o Google Instant no Firefox
Como instalar Firefox e Thunderbird no Ubuntu

Opera

Vá em Menu - Ajuda - Verificar atualizações. Aguarde a transferência dos arquivos. No final, clique em Instalar agora ou Instalar mais tarde. Recomendo a primeira opção.

atualização do opera 1

Se você é usuário Linux com distribuições baseadas no Debian, verifique se o repositório do Opera está atualizado no seu sistema.
Veja também:
Opera com barra de status do Google Chrome
Tema aero para o Opera
Como ter o Google Instant no Opera

Google Chrome

google chrome atualizado

Para atualizar o Google Chrome, vá em Ferramentas (chave inglesa) - Sobre o Google Chrome. Aguarde o download e, no final, reinicie o navegador.

atualização do google chrome

No caso do Windows, não é preciso se preocupar muito com isso, já que o Google Chrome atualiza sozinho ao reiniciar o computador. Se não quiser isso, combine as teclas Win+R e digitemsconfig.exe e aperte Enter. Será aberta uma janela. Nela, vá na aba Inicialização de programase desabilite o Google Update.
No Linux, é adicionado o repositório do Google Chrome automaticamente no sistema bastando ao usuário digitar os comandos apt-get update e apt-get upgrade para a sua atualização.
Caso não queira que seja adicionado o repositório, abra o Terminal e digite sudo touch /etc/default/google-chrome antes de instalar o pacote.
Veja também:
Cuidado ao instalar extensões no Chrome
Como atualizar extensões no Google Chrome
Três jogos de viciar para o Google Chrome

Safari

Para verificar se há atualizações para o Safari não é preciso abrir o navegador, mas sim o Apple Software Update. Ele se encontra em Iniciar (ícone do Windows na barra de tarefas)- Todos os programas.

apple software update

Aberto o programa, ele logo procura por novas atualizações. Se houver alguma atualização disponível, basta clicar no botão Install.

atualização do safari no apple software update

Veja também:
Extensões úteis para o Safari
Uma boa leitura com o Safari Reader

Internet Explorer

O Internet Explorer é atualizado junto com todo sistema Windows. Para alterar configurações de atualização do Windows, vá em Iniciar (ícone do Windows na barra de tarefas) - Todos os programas - Windows Update.

windows update

 

FONT: http://www.dicasbrowser.com/2011/01/como-atualizar-o-navegador.html#.To26gsm9B98

8.11.2011

11 mascarcas para photoshop no tema de primavera

 

qp3a

11 PNG | min [2000 x 2000 px], max [3600 x 3600 px] | 300 dp | 122, 3 Mb rar

Download: >> FileSonic.com

8.02.2011

Videos do YouTube em sites Flash–Incorporando no .fla do projeto por AS2

Para adicionar o player embutido para um vídeo específico em seu arquivo Flash, você vai estar carregando o SWF a seguir em um MovieClip:

  http://www.youtube.com/v/VIDEO_ID 

Alternativamente, você pode querer carregar o jogador chromeless em seu MovieClip se você está construindo seus próprios controles personalizados no Flash:

  http://www.youtube.com/apiplayer 

Operações


A API do ActionScript é muito semelhante à API JavaScript , com algumas pequenas alterações à forma como o jogador é inicializado e algumas funções adicionais. Para exemplos de como inicializar e fazer chamadas para o jogador via ActionScript, consulte os exemplos abaixo.

Funções



Queueing funções

Queueing funções para vídeos


player.cueVideoById(videoId:String, startSeconds:Number, suggestedQuality:String):Void
Carrega a miniatura do vídeo especificado e prepara o leitor para reproduzir o vídeo. O jogador não solicitar a FLV até playVideo() ou seekTo() é chamado.

  • Necessária videoId parâmetro especifica o ID do vídeo do YouTube do vídeo para ser reproduzido. Em YouTube Dados feeds de vídeo API, o<yt:videoid> tag especifica o ID.
  • O opcional startSeconds parâmetro aceita um float / inteiro e especifica o tempo desde que o vídeo deve começar a jogar quando playVideo()é chamado. Se você especificar um startSeconds valor e depois chamar seekTo() , então o jogador joga a partir do tempo especificado noseekTo() chamada. Quando o vídeo é cued e pronto para jogar, o jogador irá transmitir um evento de vídeo cued (5).
  • O opcional suggestedQuality parâmetro especifica a qualidade de reprodução sugerido para o vídeo. Por favor, veja a definição dosetPlaybackQuality função para obter mais informações sobre a qualidade da reprodução.

player.loadVideoById(videoId:String, startSeconds:Number, suggestedQuality:String):Void
Carrega e reproduz o vídeo especificado.

  • Necessária videoId parâmetro especifica o ID do vídeo do YouTube do vídeo para ser reproduzido. Em YouTube Dados feeds de vídeo API, o<yt:videoid> tag especifica o ID.
  • O opcional startSeconds parâmetro aceita um float / inteiro. Se for especificado, então o vídeo vai começar a partir do próximo quadro-chave para o tempo especificado.
  • O opcional suggestedQuality parâmetro especifica a qualidade de reprodução sugerido para o vídeo. Por favor, veja a definição dosetPlaybackQuality função para obter mais informações sobre a qualidade da reprodução.

player.cueVideoByUrl(mediaContentUrl:String, startSeconds:Number):Void
Carrega a miniatura do vídeo especificado e prepara o leitor para reproduzir o vídeo. O jogador não solicitar a FLV até playVideo() ou seekTo() é chamado.

  • O mediaContentUrl deve ser um URL totalmente qualificado jogador YouTube no formato http://www.youtube.com/v/VIDEO_ID . Em YouTube Dados feeds de vídeo API, a url atributo do <media:content> tag contém uma URL totalmente qualificado jogador quando a tag doformat atributo tem um valor de 5 .
  • startSeconds aceita um float / inteiro e especifica o tempo desde que o vídeo deve começar a jogar quando playVideo() é chamado. Se você especificar startSeconds e depois chamar seekTo() , então o jogador joga a partir do tempo especificado no seekTo() chamada. Quando o vídeo é cued e pronto para jogar, o jogador irá transmitir um evento de vídeo cued (5).

player.loadVideoByUrl(mediaContentUrl:String, startSeconds:Number):Void
Carrega e reproduz o vídeo especificado.

  • O mediaContentUrl deve ser um URL totalmente qualificado jogador YouTube no formato http://www.youtube.com/v/VIDEO_ID . Em YouTube Dados feeds de vídeo API, a url atributo do <media:content> tag contém uma URL totalmente qualificado jogador quando a tag doformat atributo tem um valor de 5 .
  • startSeconds aceita um float / inteiro e especifica o tempo desde que o vídeo deve começar a jogar. Se startSeconds (número pode ser um float) é especificado, o vídeo vai começar a partir do próximo quadro-chave para o tempo especificado.

Controles de reprodução e as definições do leitor

Reprodução de um vídeo


player.playVideo():Void
Reproduz o vídeo atualmente cued / carregado. O estado final após jogador executa esta função será playing (1).
Nota: YouTube só conta playbacks que são iniciadas através de um botão play nativas tanto no leitor incorporado ou cromo.
player.pauseVideo():Void
Pausa o vídeo em reprodução. O estado final após jogador executa esta função será paused (2) a menos que o jogador está no ended estado (0) quando a função é chamada, caso em que o estado jogador não vai mudar.
player.stopVideo():Void
Pára e cancela o carregamento do vídeo atual. Esta função deve ser reservado para situações raras quando você sabe que o usuário não será assistir a um vídeo adicional no jogador. Se sua intenção é a de pausar o vídeo, você deve apenas chamar a pauseVideo função. Se você quer mudar o vídeo que o jogador está jogando, você pode chamar uma das funções de filas sem chamar stopVideo primeiro.
Importante: Ao contrário do pauseVideo função, o que deixa o jogador na paused do Estado (2), o stopVideo função poderia colocar o jogador em qualquer estado não-playing, incluindo ended (0), paused (2), video cued (5) ou unstarted (-1).
player.seekTo(seconds:Number, allowSeekAhead:Boolean):Void
Procura um tempo especificado no vídeo.

  • O seconds parâmetro identifica o tempo desde que o vídeo deve começar a jogar.

    • Se o jogador já tamponado a parte do vídeo ao qual o usuário está avançando, em seguida, o jogador vai começar a jogar o vídeo no próximo quadro-chave para o tempo especificado. Este comportamento é regido pelas seek() método do Flash Player do NetStream objeto. Na prática, isso significa que o jogador poderia avançar para um quadro-chave um pouco antes ou logo após o tempo especificado. (Para mais informações, consulte a documentação da Adobe para a classe NetStream .)
    • Se o jogador ainda não tamponado a parte do vídeo ao qual o usuário está procurando, então o jogador vai começar a jogar o vídeo no próximo keyframe antes do tempo especificado.

  • O allowSeekAhead parâmetro determina se o jogador vai fazer uma nova solicitação para o servidor se o seconds parâmetro especifica um tempo fora dos dados de vídeo atualmente no buffer. Recomendamos que você defina este parâmetro para false enquanto o usuário está arrastando o mouse ao longo de uma barra de progresso de vídeo e em seguida, definir o parâmetro a true quando o usuário libera o mouse.
    Esta abordagem permite que o usuário rolar para diferentes pontos do vídeo sem solicitar transmissões de vídeo novo rolando últimos pontos unbuffered no vídeo. Então, quando o usuário libera o botão do mouse, o jogador irá avançar para o ponto desejado no vídeo, apenas solicitando um fluxo de vídeo nova, se o usuário está buscando um ponto de unbuffered no fluxo.

O estado final após jogador executa esta função será playing (1) a menos que o valor do seconds parâmetro é maior que a duração do vídeo, caso em que o estado final será jogador ended (0).
player.clearVideo():Void
Limpa a exibição de vídeo. Esta função é útil se você deseja limpar o resto de vídeo depois de chamar stopVideo() . Note que esta função foi reprovada no ActionScript 3.0 Player API .

Alterar o volume do leitor


player.mute():Void
Silencia o jogador.
player.unMute():Void
Unmutes o jogador.
player.isMuted():Boolean
Retorna verdadeiro se o jogador é silenciado, false se não.
player.setVolume(volume:Number):Void
Define o volume. Aceita um número inteiro entre 0 e 100.
player.getVolume():Number
Retorna volume atual do jogador, um número inteiro entre 0 e 100. Note-se que getVolume() irá retornar o volume, mesmo se o jogador é silenciado.

Definir o tamanho do jogador


player.setSize(width:Number, height:Number):Void
Define o tamanho em pixels do jogador. Este método deve ser usado em vez de definir as propriedades width e altura do MovieClip. Note que este método não restringir as proporções do player de vídeo, assim você terá que manter uma proporção de 4:3. O tamanho padrão do SWF chromeless quando carregado em outro SWF é 320px por 240px eo tamanho padrão do player embutido SWF é 480px por 385px.

Estado de reprodução


player.getVideoBytesLoaded():Number
Retorna o número de bytes carregados para o vídeo atual.
player.getVideoBytesTotal():Number
Retorna o tamanho em bytes do atualmente carregado / reprodução de vídeo.
player.getVideoStartBytes():Number
Retorna o número de bytes do arquivo de vídeo começaram a carregar a partir. Cenário de exemplo: o usuário procura em frente a um ponto que não foi carregado ainda, eo jogador faz um novo pedido para jogar um segmento do vídeo que não foi carregado ainda.
player.getPlayerState():Number
Retorna o estado do jogador. Valores possíveis são não iniciadas (-1), terminou (0), jogo (1), fez uma pausa (2), buffer (3), vídeo cued (5).
player.getCurrentTime():Number
Retorna o tempo decorrido em segundos desde que o vídeo começou a tocar.

Qualidade de reprodução


player.getPlaybackQuality():String
Essa função recupera a qualidade de vídeo real do vídeo atual. Ele retorna undefined se não houver vídeo atual. Valores de retorno possíveis são highres ,hd1080 , hd720 , large , medium e small .
player.setPlaybackQuality(suggestedQuality:String):Void
Esta função define a qualidade do vídeo sugerido para o vídeo atual. A função faz com que o vídeo para recarregar a sua posição atual na nova qualidade. Se a qualidade de reprodução muda, ela só vai mudar para o vídeo a ser reproduzido. Chamar esta função não garante que a qualidade de reprodução vai realmente mudar. No entanto, se a qualidade de reprodução muda, o onPlaybackQualityChange evento será fogo, e seu código deve responder ao evento e não o fato de que ela chamou o setPlaybackQuality função.
O suggestedQuality valor do parâmetro pode ser small , medium , large , hd720 , hd1080 , highres ou default . Recomendamos que você defina o valor do parâmetro para default , que instrui YouTube para selecionar a qualidade de reprodução mais adequado, que irá variar para diferentes usuários, vídeos, sistemas e outras condições de reprodução.
Quando você sugerir uma qualidade de reprodução de um vídeo, a qualidade só será sugerido em vigor para esse vídeo. Você deve selecionar uma qualidade de reprodução que corresponde ao tamanho de seu reprodutor de vídeo. Por exemplo, se sua página exibe uma 1280px por 720px reprodutor de vídeo, umhd720 qualidade de vídeo irá realmente parece melhor do que uma hd1080 qualidade de vídeo. Recomendamos chamar ogetAvailableQualityLevels() função para determinar quais os níveis de qualidade estão disponíveis para um vídeo.
A lista abaixo mostra os níveis de qualidade de reprodução, que correspondem a diferentes tamanhos player padrão. Recomendamos que você definir a altura de seu player de vídeo para um dos valores listados abaixo e que o tamanho do seu player para usar o formato 16:9. Como dito acima, mesmo se você escolher um tamanho padrão jogador, também recomendamos que você defina o suggestedQuality valor do parâmetro para default para habilitar YouTube para selecionar a qualidade de reprodução mais adequada.

  • Nível de qualidade small : altura Player é 240px, e as dimensões do jogador são pelo menos 320px por 240px de 4:3.
  • Nível de qualidade medium : altura Player é 360px, e as dimensões do jogador são 640px por 360px (para 16:9) ou 480px por 360px (para 4:3).
  • Nível de qualidade large : altura Player é 480px, e as dimensões do jogador são 853px por 480px (para 16:9) ou 640px por 480px (para 4:3).
  • Nível de qualidade hd720 : altura Player é 720px, e as dimensões do jogador são 1280px por 720px (para 16:9) ou 960px por 720px (para 4:3).
  • Nível de qualidade hd1080 : altura Player é 1080px, e as dimensões do jogador são 1920px por 1080px (para 16:9) ou 1440px por 1080px (para 4:3).
  • Nível de qualidade highres : altura do jogador é maior do que 1080px, o que significa que a relação do jogador aspecto é maior do que 1920px por 1080px.
  • Nível de qualidade default : YouTube seleciona a qualidade de reprodução adequado. Esta configuração efetivamente reverte o nível de qualidade para o estado padrão e anula todos os esforços anteriores para definir a qualidade de reprodução usando o cueVideoById , loadVideoById ousetPlaybackQuality funções.

Se você chamar o setPlaybackQuality função com um suggestedQuality nível que não está disponível para o vídeo, a qualidade vai ser definido para o nível imediatamente inferior que está disponível. Por exemplo, se você solicitar um nível de qualidade dos large , e que não está disponível, então a qualidade de reprodução será definido para medium (contanto que esse nível de qualidade está disponível).
Além disso, a definição suggestedQuality para um valor que não é um nível de qualidade reconhecida é equivalente à configuração suggestedQualityao default .
player.getAvailableQualityLevels():Array
Esta função retorna o conjunto de formatos de qualidade em que o vídeo encontra-se disponível. Você pode usar esta função para determinar se o vídeo está disponível em uma maior qualidade do que o usuário está vendo, e seu jogador poderia exibir um botão ou outro elemento que permite ao usuário ajustar a qualidade.
A função retorna um array de strings ordenadas do maior para o menor qualidade. Valores de elementos da matriz são possíveis highres , hd1080 , hd720, large , medium e small . Esta função retorna um array vazio se não houver vídeo atual.
Seu cliente não deve mudar automaticamente de usar o mais alto (ou baixo) de vídeo de qualidade ou a qualquer nome de formato desconhecido. YouTube pode expandir a lista de níveis de qualidade para incluir formatos que não pode ser apropriada em seu contexto jogador. Da mesma forma, o YouTube pode remover opções de qualidade que seria prejudicial para a experiência do usuário. Ao garantir que o seu cliente apenas muda para conhecidos, formatos disponíveis, você pode garantir que o desempenho do seu cliente não será afetado por qualquer introdução de novos níveis de qualidade ou a remoção de níveis de qualidade que não são apropriados para o seu contexto jogador.

Recuperação de informações de vídeo


player.getDuration():Number
Retorna a duração em segundos do vídeo em reprodução. Note-se que getDuration() irá retornar 0 até os metadados do vídeo é carregado, o que normalmente acontece apenas após o vídeo começa a tocar.
player.getVideoUrl():String
Retorna a URL para o YouTube.com atualmente carregado / reprodução de vídeo.
player.getVideoEmbedCode():String
Retorna o código de incorporação para o atualmente carregado / reprodução de vídeo.

Adicionando um ouvinte de evento


player.addEventListener(event:String, listener:Function):Void
Adiciona uma função de ouvinte para o especificado event . Os eventos seção abaixo identifica os diferentes eventos que o jogador poderia fogo. Olistener é uma referência para a função que será executada quando o evento é acionado especificado.

Funções Especiais


O ActionScript chamadas específicas API estão listados abaixo:


player.isPlayerLoaded():Boolean
Retorna verdadeiro quando o jogador SWF é carregado, inicializado e pronto para receber chamadas API. Ele irá retornar falso ou poderia ser indefinido antes que o jogador está completamente carregado e inicializado.
player.destroy():Void
Destrói a instância jogador. Este método deve ser chamado antes de descarregar a SWF jogador do seu SWF pai.

Eventos



onStateChange
Este evento é acionado sempre que muda o estado do jogador. Valores possíveis são não iniciadas (-1), terminou (0), jogo (1), fez uma pausa (2), buffer (3), vídeo cued (5). Quando o SWF é carregado pela primeira vez ele irá transmitir um evento (-1) não iniciadas. Quando o vídeo é cued e pronto para jogar ele irá transmitir um evento de vídeo cued (5).
onPlaybackQualityChange
Este evento é acionado sempre que o vídeo muda a qualidade da reprodução. Por exemplo, se você chamar o setPlaybackQuality(suggestedQuality)função, este evento será acionado se a qualidade de reprodução realmente muda. Seu código deve responder ao evento e não devem assumir que a qualidade mudará automaticamente quando o setPlaybackQuality(suggestedQuality) função é chamada. Da mesma forma, seu código não deve presumir que a qualidade de reprodução só vai mudar como resultado de uma chamada explícita para setPlaybackQuality ou qualquer outra função que lhe permite definir uma qualidade de reprodução sugerido.
O valor que as transmissões de eventos é a qualidade de reprodução novo. Valores possíveis são "pequenas", "medium", "grande", "HD720", "HD1080", e "highres".
onError
Este evento é disparado quando um erro ocorre no leitor. Os códigos de erro possíveis são 2 , 100 , 101 e 150 :

  • O 2 código de erro é transmitido quando um pedido contém um parâmetro inválido. Por exemplo, este erro ocorre se você especificar um ID de vídeo que não tem 11 caracteres, ou se o ID de vídeo contém caracteres inválidos, como pontos de exclamação ou asteriscos.
  • O 100 código de erro é transmitido quando o vídeo solicitado não foi encontrado. Isto ocorre quando um vídeo foi removido (por qualquer motivo), ou que tenha sido marcada como privada.
  • O 101 código de erro é transmitido quando o vídeo solicitado não permitir a reprodução dos jogadores incorporado.
  • O código de erro 150 é o mesmo que 101 , ele é apenas 101 em disfarçar!

Exemplos


Carregar o SWF jogador


Por causa da arquitetura do SWF jogador, usando o ActionScript é construído em MovieClipLoader não vai lhe dar informações precisas. Para detectar quando o SWF jogador está pronto para receber chamadas de API, você deve chamar player.isPlayerLoaded() , que irá retornar verdadeiro quando o jogador está completamente carregado e inicializado.

Neste ponto, você pode se inscrever em eventos e fazer as outras chamadas de API para o jogador.

Neste exemplo, vamos esperar para o jogador SWF para carregar usando MovieClipLoader é onLoadInit evento, e depois iniciar um intervalo para verificar quando o SWF jogador é inicializado.

Usando o SWF jogador em Adobe Flash

Baixe o FLA

Esta é a maneira mais fácil de começar, se você tiver o Adobe Flash instalado. Basta abrir o FLA e publicar o SWF. O código pode ser visto no "Actions - Frame" guia.

Usando o SWF jogador usando MTASC

Se você não tiver o Flash instalado, você pode compilar um arquivo AS2 simples que inclui o jogador. Este pode então ser compilado com um compilador de ActionScript como MTASC .

Baixar arquivo fonte AS2

Para compilar o arquivo fonte acima AS2 em um SWF, use o seguinte MTASC comando:

  caminho / para / MTASC-swf ytdemo.swf-main-header 800:600:20 YTDemo.as 

Uma vez que o jogador está carregado e pronto, todas as chamadas de API podem ser feitas da mesma maneira como a API JavaScript .

Determinar o estado de um botão de alternância de qualidade


O código de exemplo abaixo demonstra como YouTube determina o status do seu botão de qualidade de alternância, que permite aos usuários selecionar uma qualidade de reprodução diferentes com base em níveis de qualidade disponível para um vídeo.

 qualityLevels var: Array = getAvailableQualityLevels ()
/ / QualityLevels pode ser indefinido se a função de API não existe,
/ / Caso em que este condicional é falsa
if (qualityLevels.length> 1) {

highestQuality var: String = qualityLevels [0]
if (highestQuality começa com "hd") {
/ / Botão de qualidade da marca alternar como HD.
Else {}
/ / Botão de qualidade da marca alternar como HQ.
/ / A mais alta qualidade disponível é mostrado, mas não é vídeo HD.
}

qualidade var: String = getPlaybackQuality ();
if (qualidade == 'pequenos' | qualidade == 'medium' |) {
/ / O usuário não está assistindo a mais alta qualidade disponível
/ / Pode pode alternar para uma maior qualidade.
Else {}
/ / O usuário está assistindo a mais alta qualidade disponível
/ / E pode alternar para uma qualidade inferior.
}

Else {}
/ / Ocultar o botão de alternância, porque não há vídeo atual ou
/ / Existe apenas uma qualidade.
}

Trabalhando com AS3


Por favor, consulte as instruções para o uso do ActionScript 3.0 para mais informações.

Ressalvas


Quando um jogador descarga YouTube, você deve sempre chamar destroy() em primeiro lugar. Isto irá fechar o objeto NetStream e parar o vídeo de continuar a baixar mesmo depois de o jogador ter sido descarregado. Ele também irá eliminar as referências ao SWF jogador assim que se você carregar um SWF novo jogador para a sua aplicação, o SWF novo pode carregar e inicializar corretamente.

Você deve chamar destroy() sobre o jogador. Não há necessidade de chamar removeMovieClip() .

7.21.2011

Adicionar um Lightbox com formulário de Contato para seu Blog,blogger,blogspot

Ao pesquisar métodos de personalização para o meu eBook próxima, eu fiquei realmente impressionado com o quão fácil é adicionar um formulário de contato Lightbox estilo aos nossos sites usando ThickBox:

thickbox-contact-form-example

Usando Thickbox para exibir um formulário de contato, desta forma permite que os seus leitores de e-mail sem precisar sair da página. Podemos adicionar essa funcionalidade em um gadget HTML simples, e não há necessidade de editar o HTML do nosso modelo em tudo.

Neste post, vou explicar como é fácil adicionar um estilo de formulário de contato, mesa de luz para seu blog do Blogger usando Thickbox e um livre Kontactr conta.

Crie um formulário de contato com Kontactr

Actualmente, o Blogger não oferece os meios para integrar um formulário de contato nativamente em nossos blogs. Como não podemos (facilmente) usar o PHP em nosso Blogger modelos, a solução ideal é usar um serviço externo para gerar um formulário de contato.

Meu serviço preferido para formulários de contato simples é Kontactr - Eu tenho usado Kontactr há vários anos, e encontrei este para ser confiável e fácil de implementar.

Então, primeiro de tudo, pop até Kontactr e criar sua conta gratuita. Leva apenas alguns minutos para registrar e configurar o formulário de contato próprio, que vamos usar para mostrar na nossa tela lightbox no estilo:

kontactr-homepage

Depois de ter criado um formulário de conta e de contato, você será presenteado com uma página como esta:

kontactr-url

Anote a URL do seu formulário de contato - precisaremos adicionar isso ao nosso gadget HTML em breve.

Adicionar "Fale comigo" gadget para seu modelo do Blogger

Para demonstrar este método, eu escolhi usar Kontactr para a incorporação de um formulário de contato simples e gratuito.

No entanto, podemos usar esse método para exibir um formulário de contato alternativo (ou mesmo qualquer outra página da web) em seu site. Basta substituir URL-de-seu-KONTACTR-FORM com o URL da página que você gostaria de exibir. Esta técnica também pode ser usado para exibir imagens grande, usando o URL de uma imagem hospedada.

Os scripts necessários para operar a função Thickbox são seguramente hospedado no Google Code . Se você prefere hospedar esses scripts você mesmo (ou talvez criar em cima delas), você pode baixar os scripts que tenho usado a partir da página oficial ThickBox .

Espero que você encontre este post útil na criação do seu estilo de formulário de contato lightbox própria para o seu blog Blogger. Sinta-se livre para deixar seus comentários abaixo.

Videoa aula de como criar um quebra-Cabeças com o CorelDRAW

7.20.2011

Plugin para Artigos Relacionados e Para Artigos em Série Opções

Quais os melhores plugins para Artigos Relacionados e Para artigos em
série?

http://wordpress.org/extend/plugins/wordpress-23-related-posts-plugin/

Curso para Wordpress

Wordpress é um software livre de gerenciamento de conteúdo na web. Desenvolvido na linguagem de programação PHP, utilizando base de dados MySQL, é usado principalmente para criação de blogs, portais e sites institucionais.

Alguns dos principais sites do mundo utilizam WordPress parcialmente ou em seu site todo. A verdade é que o WordPress se tornou uma ferramenta muito confiável e útil.

  • Objetivo
  • Benefícios
  • Ementa
  • Pré-requisitos
  • Turmas abertas
  • Valores e inscrições

No módulo 2 de nossos cursos, pensamos em desenvolvedores web profissionais, desde o designer até o programador. Com o objetivo decapacitar profissionais para o desenvolvimento de temas e utilização de plugins, para que o resultado final seja um site totalmente dinâmico e administrável.

Além de aprender a desenvolver sites totalmente dinâmicos e administráveis, você também aprenderá a respeitar as diretrizes dos mecanismos de busca e conseguirá desenvolver temas otimizados (SEO) para wordpress.

Inscreva-se

7.16.2011

Foto para pintura

Por Rogério Gomes
Font: http://www.photoshopcreative.com.br/tutoriais/aq0-122-7598-1-naturezamorta+digital.html




Esse estilo de pintura surgiu na Grécia antiga e refere-se à arte de pintar, desenhar e fotografar objetos inanimados como, flores, frutas, livros, porcelana e utensílios em geral. Muitos artistas recorreram a esse estilo ao longo dos anos e pelos mais diversos motivos. Como no caso do pintor holandês por trás do De Stijl, Piet Mondrian, que o fazia por ser um estilo que vendia em sua época e lhe gerava retorno financeiro.
Por incrível que possa parecer, esse estilo, ainda hoje, é bastante popular e ensinado nas escolas de arte. Devido ao fato de ser possível explorar diferentes técnicas de desenho e pintura, bem como estimular a observação e estudar os princípios de luz e sombra, entre outros fundamentos, é usado nos primeiros passos do aluno.
Levando isso em conta e deixando preconceitos de lado (lembre-se do mestre Mondrian) por que não aprender a reproduzir esse estilo digitalmente? 
 

Essência

Nível: Intermediário
Tempo: 2 horas
Versão: CS5
Recursos: Filtro Clouds, filtro Gaussian Blur, Smart Objects, Blend Modes, máscaras, combinação de filtros.
Imagens: Stock.XCHNG
Ref.: 663659 - http://www.sxc.hu/browse.phtml?f=view&id=663659
 

Novas habilidades:

Técnicas de pintura digital
Uso da Filter Gallery
Smoodge tool para pintura
 

1. Preparando

Abra sua imagem, clique duas vezes na camada ‘Background’ para transformá-la numa camada comum. Abaixo da nova camada crie uma nova com o nome de ‘Tela’ e deixe invisível a camada com a imagem (provavelmente com o nome ‘Layer 0’). Para evitar problemas renomeie-a como ‘Imagem’.

2. A cor da tela

Precisamos simular o meio para nossa pintura, nesse caso, uma tela. Comecemos pela cor. Escolha dois tons de bege, um claro e outro mais escuro, para suas cores de fundo e de primeiro plano. Então vá amenu Filter>Render>Clouds, em seguida, menu Filter>Blur>Gaussian Blur ajustado em 50px.

3. A textura

Para texturizar nossa tela usaremos filtro Texturizer(menu Filter>Texture>Texturizer). Ajuste-o da seguinte forma: No menu de cortina Texture escolhaCanvasScaling 100%Relief 2 e no menu Lightencolha Top. Agora temos nossa tela de algodão pronta pra receber tinta.

4. Smart Object

A seguir, usaremos uma combinação de filtros para simular pinceladas. Para proteger a imagem original, ative sua visibilidade, selecione-a e transforme-a numSmart Object (menu Layers>Smart Objects>Convert to Smart Objects). Vá então amenu Filter>Artistic>Dry Brush e ajuste-o assim:Brush Size 5Brush Detail 0 e Texture 2.

5. Spatter

Na parte inferior direita da galeria de filtros você encontra o botão New Effect Layer. Clique nele para adicionar um novo filtro que se misturará aos já aplicados. Dentro da pasta Brush Strokes, no painel central, você encontra o filtro Spatter. Clique nessa opção para adicioná-lo por cima do efeito Dry Brushe configure-o assim: Spray Radius 15 Smoothness 10.

6. Sprayed Strokes

Adicione uma nova camada de efeito e nela aplique o filtro Sprayed Strokes que se encontra também dentro da pasta Brush Strokes. Sua configuração é a seguinte: Stroke Length 20Spray Radius 10 e no menu de cortina Stroke Direction escolha Right Diagonal.

7. Angled Strokes

Numa nova camada de efeito aplique o filtro Angled Strokes que tembém fica dentro da pasta Brush Strokes. Ele deve ser ajustado assim: Direction Balance 50Stroke Length 20 Sharpness 0.

8. Paint Daubs

O próximo efeito é o Paint Daubs que se encontra na pasta Artistic. Aplique-o a uma nova camada de efeito com os seguintes ajustes: Brush Size 5,Sharpness 0 e no menu de cortina Brush Typeescolha Simple.

9. Watercolor

O último filtro é o Watercolor. Você vai encontrá-lo da pasta Artistic da galeria e deve acrescentá-lo na parte de cima da pilha de efeitos. Ajuste-o assim:Brush Detail 14Shadow Intensity 0 e Texture 1. Como, nesse caso, a ordem dos fatores altera o resultado, assegure-se de que a ordem seja esta, de baixo para cima: Dry BrushSpatterSprayed StrokesAngled Strokes, Paint Daubs Watercolor. Clique em Ok.

10. Rasterizando

Para editar continuar o processo será preciso rasterizar nosso Smart Object. Duplique-o (Cmd/Ctrl+J) e vá a menu Layer>Rasterize>Smart Object. Assim poderemos editar a camada como qualquer outra. Caso queira editar algum dos filtros de pintura, basta clicar duas vezes sobre o itemFilter Gallery na camada ‘Imagem’ e a paleta se abrirá novamente.

11. Com os dedos

Selecione a Smoodge tool na caixa de ferramentas, ajuste suas opções assim: Mode Normal, ative a check box Finger Painting e, caso use uma tablet, clique no botão Tablet Pressure Controls Size. Escolha o brush Chalk e pinte por cima da imagem. A ideia é deixá-la menos mecânica e tornar os traços mais expressivos. Varie a força da ferramenta bem como seu tamanho.

12. High Pass

Duplique a camada pintada (‘Imagem copy’), tecleCmd/Ctrl+U para deixá-la em escala de cinza e vá amenu Filter>Other>High Pass. Use 20px de Radius. Mude o blend da camada para Overlay e reduza suaopacidade para 50%. Em seguida, vá a menu Filter>Sharpen>Unsharp Mask e ajuste o filtro assim: Amount 100%Radius 50px Threshold 5 levels.

13. Com o pincel

Tecle Cmd/Ctrl+Opt/Alt+Shift+E para juntar as camadas visíveis numa nova. Junte as camadas criadas anteriormente numa pasta (selecione-as e tecle Cmd/Ctrl+G) e deixe-a invisível. Adicione uma máscara à nova camada, preencha a máscara com preto. Selecione a Brush tool na caixa de ferramentas, escolha o brush Rough Round Bristle. Ajuste a opacidade da ferramenta em 20-40% e oFlow em 10% e, intuitivamente, pinte a imagem na tela variando os tamanhos do pincel. Se quiser, pode usar uma cópia da camada com opacidade reduzida como referência. 
 

14. Base

Crie uma nova camada abaixo da pintura com o nome ‘Base’ e, usando o mesmo pincel do passo anterior, pinte uma suave transição branca entre a pintura e o fundo. Pinte todo o contorno da imagem. Se quiser, pinte também algumas áreas que possam ter ficado sem “tinta”. 

15. Blend Mode

Duplique a camada com a pintura e coloque a cópia abaixo da camada ‘Base’, jogue sua máscara fora ou deixe-a invisível e mude seu blend para Overlay. Se a camada ‘Base’ ficar branca demais, mude seu blend para Soft Light.

16. Claro e escuro

Crie duas camadas novas acima da pilha. A do topo será nomeada como ‘Claro’ e usará o blend Linear Dodge. A camada abaixo dela será ‘Escuro’ e usará o blend Linear Burn. Em ‘Claro’ pinte de alaranjado as áreas mais claras da imagem e, em ‘Escuro’, as regiões de sombra usando um tom de marrom. Use a mesma técnica e pincel utilizados no passo 14 e pronto. Agora é só salvar.

Twitter Delicious Facebook Digg Stumbleupon Favorites More