Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adriano de Castro

Diminuição de resolução Vetorial com Serrilhados

Recommended Posts

Bom dia pessoal;

 

Primeiramente quero dizer que, antes de postar aqui, fiz uma extensa pesquisa na internet e no próprio fórum em busca de algo diferente do que já executei, mas não obtive êxito. Atualmente criei um logomarca no CorelDraw X7, com uma extensa resolução de 1200dpi's.

O grande problema está quando tento diminuir a logomarca para uma resolução de no máximo 200px de largura. Os serrilhados tanto do texto quanto da marca aparecem e são evidentes, dando a impressão de algo bem mal elaborado. Após muito tempo parado estou voltando à ativa, e gostaria de saber diversas opiniões sobre; talvez eu tenha perdido algo na evolução do nosso querido mercado que faria toda a diferença nesse problema, mas ainda tenho esperanças que alguém aqui me ajude.

Bem galera, sem mais textos, vou explicar o que já foi feito e os resultados, depois eu posto as imagens para vocês avaliarem.
1 - Criei a logomarca no CorelDraw X7 em Shapes 100% vetoriais com dimensões de L = 12000pxs e A = 2955pxs além de uma resolução de 1200dpi's (Sim, foi meu desespero em tentar contornar a situação!);

2 - Já exportei em diversos formatos de compactação mais comuns, tais como TIFF, EPS, PSD, PNG e JPG, todos com diversas variações de configurações entre paleta de cores, suavizações de serrilhados, polarização, etc, etc;
3 - Já tentei reconfigurar os formatos em alta resolução nos softwares apropriados para tratamento de imagens e vetores (Photoshop e Illustrator), sempre importando em alta resolução e tentando obter o tão sofrido 200px de largura com 120dpi's (Formato Web);

4 - Abaixo seguem as bordas da tentativa de deixá-la com 200px (Logomarca menor) e logo abaixo um recorte da logo em alta resolução (Logomarca maior sem serrilhados nas bordas):

Bristand-Vetor.png

imagem1.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Adriano de Castro,

Pelo que conheço você deve levar em consideração a proposta final do arquivo. É inevitável que um logo com 200 pixels tenha menor qualidade do que um com 12000 pixels. É impossível fazer caber um em outro e a resolução não vai resolver 100% do problema.

 

3.png.b3fa3ef32262b7fbc1178dc94b433cc8.png   1.png.abbf014d34370f68364ee7226eae0941.png

 

Repare: 16px 32px 64px

58bb0ea90f4d7_Semttulo-2.png.36ef661a3365041271c80bc5ea252256.png58bb0ea997e18_Semttulo-22.png.304ee0d71da0f025d835a530d0797e29.png58bb0ea9ec527_Semttulo-222.png.cce082d5317e1451d3665ad34badee75.png

 

O ideal para você garantir fidelidade de um arquivo é fazê-lo no tamanho em que ele será apresentado com as devidas alterações necessárias, como por exemplo, engrossar uma linha que acabou ficando muito fina e se distorceu na imagem final ou até mesmo retirá-la, que daí a percepção de serrilhado será menor.

 

Acabei sendo repetitivo pois você já disse sobre suavização de serrilhado no seu 2º tópico, contudo, imagens nesse tamanho, que no seu caso vai acabar ficando com 50 pixels de altura já entram no quesito percepção, como um outdoor por exemplo, mesmo que esteja serrilhado, quem vê seu trabalho verá ele muito pequeno, é praticamente um ícone, então não tem muita escapatória.

 

Caso você esteja pretendendo colocar em um site próprio você pode resolver melhor a situação com um arquivo SVG que atualmente com a necessidade de sites responsivos pode vir a calhar muito bem.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo @2LEPRECHAUN;

 

Bem, seguindo suas premissas eu consegui reduzir o impacto do serrilhado ao diminuir as resoluções, criando uma nova logo com uma resolução menor. O resultado não é o que eu esperava, mas já está bem mais satisfatório para um site profissional.

No caso do SVG eu teria que criar uma espécie de "Embed" do XML no site, vou ter um pouco mais de trabalho por estar utilizando uma plataforma de ecommerce já pronta, não quero perder muito tempo com desenvolvimentos.

No mais eu agradeço a dica amigo. Foi válida mesmo.

Se houver mais alguém com outras ideias que possamos implementar, sintam-se à vontade.

 

Abraços!

bristand_300px.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por lara1807
      Boa noite pessoal, preciso resolver um algoritmo que o código abaixo descreve. Eu possuo um vetor de porcentagens e cada porcentagem dessas é atribuida de um valor do vetor entrada_pop. Nesse programa eu quero gerar um numero aleatório e ver as porcentagens que são maiores que esse numero aleatório e armazenar o valor, não da porcentagem, mas do valor que representa a porcentagem, em um vetor novo, depois imprimir este vetor, só que não está indo. Alguém pode me ajudar?? Estou variando os valores de 0 a 100
      #include <time.h>
      #include<math.h>
      #define num_individuo 3
      #define tam_vetores 1000
      int main()
      {
          float valor_percen_aptidao[]={6,20,80},v_selecionado[100],vetor_entrada_pop[]={1,2,3};
          int cont=0,i,valor_percen;
          srand(time(NULL));
          while(cont<=num_individuo)
          {
              valor_percen=(rand()%100);
              printf("sorteado %d",valor_percen);
              for(i=0;i<num_individuo;i++)
              {
                  if(valor_percen_aptidao[1]>=(float)valor_percen)
                  {
                      v_selecionado[cont]=vetor_entrada_pop;
                      cont++;
                  }
              }
          }
           for(i=0;i<num_individuo;i++)
          {
              printf("selecionados %.2f \n",v_selecionado);
          }
      }
       
    • Por pachecok
      Estou iniciando em programação e tenho um trabalho em C que devo:
       
      Construir um programa que leia uma matriz 7x7 de inteiros.
      Após a leitura, calcular o somatório apenas dos elementos abaixo destacados da matriz lida.
      Mostre, os elementos destacados e o somatório.
       
      A soma deve ser entre as posições da matriz refentes a imagem em anexo. 
      É esta a dificuldade que eu encontrei, não sei os passos para realizar esta soma em específico então provavelmente a minha tentativa abaixo foi bizarra. 
       
      Alguém poderia me ajudar? Agradeço desde já. 
       
      #include<stdio.h> #include<conio.h> #define linha 7 #define coluna 7 int main (void ) { int i, j, matriz[linha][coluna], result, soma; printf ("\nDigite valor para os elementos da matriz\n\n"); for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ printf ("\nElemento[%d][%d] = ", i, j); scanf ("%d", &matriz[ i ][ j ]); } } for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ printf ("%i", matriz[i][j]); } printf("\n"); } for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ result=result+matriz[i][j]; } } for ( i=0; i<linha; i++ ){ for ( j=0; j<coluna; j++ ){ soma=soma+matriz[3][3]+matriz[4][2]+matriz[4][3]+matriz[4][4]+matriz[5][1]+matriz[5][2]+matriz[5][3]+matriz[5][4]+matriz[5][5]+matriz[6][0]+matriz[6][1]+matriz[6][2]+matriz[6][3]+matriz[6][4]+matriz[6][5]+matriz[6][6]; } } printf("\n\nA soma de todos valores da matriz: %d\n", result); printf("\n\nA soma dos valores solicitados: %d\n", soma); }  

    • Por vitufranca
      Oi pessoal, ao tentar salvar meus arquivos em CDR. aparece uma notificação de erro (anexado). Não importa em qual formato de arquivo eu tente salvar, sempre dá esse erro, se eu mudo o local onde estou salvando acontece o mesmo erro, se mudo o nome do arquivo, dá o mesmo erro. O mesmo começou a acontecer com meu Ps.
      Meu Corel está na versão 21.0 (2019).
      Obrigado pela ajuda de todos, desde já.

    • Por Falcon33
      [INICIANTE]
      Boa tarde pessoal, estou com problemas para terminar o seguinte código. 
      Preciso adicionar os seguintes procedimentos.
      1.     Utilizar vetores e/ou matrizes;
      2.     Utilizar estruturas de repetição;
      3.     Implementar utilizando modularização (no mínimo um módulo de procedimento e dois módulos de ação);
      4.     Utilizar passagem de parâmetro por valor e referência;
      5.     Utilizar registros;
      6.     Utilizar alocação dinâmica de memória;
       
      Alguém poderia dar uma luz? 
       
      Já fiz o seguinte: 
      //Projeto: Calculo de PI por Monte Carlo. Adotando o intervalo entre [0,1]. #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main(){ double px,py,deltax,deltay,DistEuc,Valor_pi; int Npont_quad = 10000000; int dentro_circ = 0; int i; srand(time(NULL)); for(i = Npont_quad; i > 0; i--){ //Estrutura de repetição para gerar pontos aleatorios. px = rand() / (double)RAND_MAX; //Primeiro numero sorteado entre 0 e 1. py = rand() / (double)RAND_MAX; //Segundo numero sorteado entre 0 e 1. deltax = pow((px- 0.5),2); //Calculo do cateto x da hipotenusa. deltay = pow((py - 0.5),2); //Calculo do cateto y da hipotenusa. DistEuc = sqrt(deltax + deltay); //Calculo da distancia euclidiana(distancia entre os pontos) if (DistEuc <= 0.5){ //Determinar quais pontos estão dentro do circulo dentro_circ++; } } Valor_pi = 4 * dentro_circ / (double) Npont_quad; //Obtenção do valor de PI. printf("O valor de PI eh: %lf", Valor_pi); //Imprimir o valor de PI. }  
    • Por marcoszlk
      Boa tarde, estou com esta atividade para resolver, mas não consigo, alguem pode me ajudar, tem que ser resolvido com vetores, da forma mais simples para entendimento. Agradeço desde ja !!!
      Vou deixar em anexo os templates.
       
      Fila:
      Para execução desta atividade será fornecido o template html e js para adaptação:
       filaADesenvolver.html (renomear para fila.html);
       filaADesenvolver.js (renomear para fila.js).
      Necessário desenvolver para Fila:
      1 – Insere:
       Inserir pessoa na fila e avisar que a pessoa foi inserida;
       Checar se foi digitado um nome de pessoa. Caso não seja indicado um nome, não permitir inserir na fila e avisar o usuário que é
      necessário digitar um nome;
       Ao inserir, atualizar a fila dos nomes (pré-implementado).
      2 – Remove:
       Remover a pessoa da fila (Conceitualmente sai da fila a primeira pessoa);
       Checar se a fila possui pessoas para remover. Caso não tenha mais pessoas na fila, avisar o usuário que a fila está vazia;
       A cada remoção, atualizar a fila dos nomes (pré-implementado).
      3 – Apaga:
       Limpa toda a fila.
      4 – A cada ação de inserir, remover ou apagar, deve-se setar o foco do cursor no campo para indicar um novo nome de pessoas.
      5 – Observar outros detalhes do enunciado.
      Faça um ambiente web para controlar Fila de Banco. Deve permitir inserir o nome de pessoas. Deve permitir sair pessoas da
      fila. Quando uma pessoa sair, o algoritmo deve realocar as pessoas na fila. Ao inserir uma pessoa na fila, deve checar se há
      vaga nessa fila, se não houver vaga, alertar a pessoa que deve voltar outra hora. Considerar uma Fila de 5 pessoas no
      máximo. Criar a possibilidade de listar as pessoas da fila.
      Primeiro que entra, Primeiro que sai.
       
       
       
      Pilha:
      Para execução desta atividade será fornecido o template html e js para adaptação:
       filaADesenvolver.html (renomear para pilha.html);
       filaADesenvolver.js (renomear para pilha.js).
      Necessário desenvolver para Pilha:
      1 – Insere:
       Inserir caixa na pilha e avisar que a caixa foi inserida;
       Checar se foi digitado um número de caixa. Caso não seja indicado um numero, não permitir inserir na pilha e avisar o usuário que
      é necessário digitar um numero;
       Ao inserir, atualizar a pilha dos números das caixas (pré-implementado).
      2 – Remove:
       Remover a caixa da pilha (Conceitualmente sai da pilha a última caixa inserida);
       Checar se a pilha possui caixas para remover. Caso não tenha mais caixas na pilha, avisar o usuário que a pilha está vazia;
       A cada remoção, atualizar a pilha das caixas (pré-implementado).
      3 – Apaga:
       Limpa toda a pilha.
      4 – A cada ação de inserir, remover ou apagar, deve-se setar o foco do cursor no campo para indicar um novo número de caixa.
      5 – Observar outros detalhes do enunciado.
      Faça um ambiente web para controlar Pilha de Caixas. Deve permitir inserir caixa na pilha. Deve permitir remover caixa da
      pilha. Ao inserir uma caixa na pilha, deve checar se há vaga nessa pilha (o teto é o limite), se não houver vaga, alertar a
      pessoa que deve guardar a caixa em outro lugar. Considerar uma Pilha de 5 caixas no máximo. Criar possibilidade de listar as
      caixas da pilha.
       
       
       
      template JS :
       
      var filaPessoas = [];
      function listaPessoas(){
        //Entrada
        var divListaRepeticao = document.getElementById("listaRepeticao");
          
        //Processamento 
        var nroPessoas = filaPessoas.length;
        var resultado = "";  
        if  (nroPessoas == 0) {
            document.getElementById('informacao').value = "A fila de pessoas está vazia!!!";
        };      
            
        for (var contaPessoa = 0; contaPessoa < nroPessoas; contaPessoa++) {
            resultado += "<tr><td>"+filaPessoas[contaPessoa]+"</td></tr>";
        };  
        //Saída  
        divListaRepeticao.innerHTML = resultado;
        return true;
      };
      function inserePessoa() {
        //Entrada
        var nomePessoa = document.getElementById('nomePessoa').value;
           
        //Processamento
        
        //Saída
        return true;
      };
      function removePessoa() {
        //Entrada
        
        //Processamento
        
        //Saída
        return true;  
      };
      function limpaPessoas() {
        //Entrada
        
        //Processamento
        
        //Saída
        
        return true;
      }; 
       
      TEMPLATE HTML :
       
      <!doctype html>
      <html lang="pt-br"> 
        <head>
          <title>Fila de Pessoas</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">    
          <script language=javascript type="text/javascript" src="filaADesenvolver.js"></script>    
        </head>
        <body onLoad="listaPessoas()">
            <div class="container" style="padding-top: 20px">
              <div class="row"> 
                <div class="col-12"> 
                    <form class="form-control bg-faded">
                      <div class="col-12"> 
                          <h1>Fila de Pessoas</h1>
                      </div>
                      <div class="col-12">               
                          <div class="form-group row" id="idAdicionaBloco">
                              <label for="nomePessoa" class="col-1 col-form-label">Nome</label>
                              <input class="col-4 form-control" type="text" id="nomePessoa" placeholder="Nome da Pessoa a inserir">
                          </div>
                      </div>
                      <div class="col-12">                    
                          <div class="form-group">
                              <button type="button" class="btn btn-success" id="insere" onclick="inserePessoa()">Insere</button>
                              <button type="button" class="btn btn-danger" id="apaga" onclick="removePessoa()">Remove</button>
                              <button type="button" class="btn btn-warning" id="limpa" onclick="limpaPessoas()">Limpa</button>
                          </div>
                      </div>
                      <div class="row">
                          <div class="col-12">
                              <div class="alert alert-info">
                                  <strong>Informação!</strong>
                                  <input class="form-control" type="text" id="informacao" placeholder="Bem Vindo!" readonly>
                              </div>
                          </div>
                      </div>    
                      <div class="col-12">
                          <div class="table-responsive">
                              <table width="100%" cellpadding="0" cellspacing="0" border="0" class="table table-hover table-striped">
                                  <thead>
                                      <tr>
                                          <th>Pessoas</th>                                       
                                      </tr>
                                  </thead>
                                  <tbody id=listaRepeticao>
                                   <!-- Aqui vamos criar linhas dinamicamente!  
                                      <tr>
                                          <td>Elementos...</td>
                                      </tr>
                                   -->
                                  </tbody>
                              </table>
                          </div>
                      </div>
                  </form>          
                </div>
              </div>
            </div>
        </body>
      </html>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.