Imagem de PNG redigida / girada usando o ImageMagic é Blury. Como afiar? -- acos campo com graphics campo com printing campo com image-processing camp apple Relacionado O problema

Resized/Rotated PNG image using ImageMagic is blury. How to sharpen?


0
vote

problema

português

Quando tento redimensionar (encolher, neste caso) e / ou girar um arquivo PNG, fica muito embaçado. Além disso (obviamente) não querendo uma imagem embaçada, é realmente crítica porque estas são etiquetas de envio com códigos de barras e a imagem é tão ruim, os leitores de código de barras realmente têm problemas com eles.

O comando que estou usando é

  % convert input_file.png -resize 288 -rotate -90 output_file.png    
  • -resize 288 → Redimensionar uma largura de 288 pixels (4 polegadas) mantendo a proporção. 288 é o número de pixels para uma resolução de 72dpi (impressão)
  • -rotate -90 → gira toda a imagem anti-horário 90 °

O arquivo que você recebe do eBay, USPS Click-N-Ship ou PayPal é um rótulo de 4x6 polegadas no PNG ou PDF. Eu escolho png desde que eu preciso girá-lo como estou usando minha impressora a laser com etiquetas de letras ( Avery 8127 ). Eu tenho que redimensionar isso porque o png eles fornecem é enorme! Olhando para o tamanho na visualização, é 17x25 polegadas.

Eu pesquisei isso extensivamente, mas as soluções que eu encontrei apenas marginalmente melhorar a nitidez da imagem. O resultado final é que dependendo do leitor de código de barras pode ou não lê-lo. Por exemplo, eu tenho dois leitores - um simples leitor de código de barra de símbolo 2D que com mais frequência do que não falhará. No entanto, meu foco mais caro 3D Reader vai ler mais vezes, mas às vezes falhar.

  • ImageMagick convertido imagem está borrada

  • ImageMagick v6 Exemplos - Blurring e Sharpening Images

  • embaçado redimensionado png. Como faço para manter a qualidade da imagem?

  • ImageMagick v6 exemplos - redimensionar ou dimensionar (técnicas gerais) < / p >.

    desta página

    .

    No entanto, muitos filtros (mesmo os filtros padrão) podem borrar imagens ligeiramente. Faz parte de sua natureza. Então, normalmente este 'curto-circuito' para um número não opino uma coisa boa.

Nenhum destes funcionários.

Eu estava sob a impressão de que, se eu fizer uma imagem menor, não perderia a qualidade, no entanto, isso não parece ser o caso. Então, minha pergunta é, como posso redimensionar essa imagem para que eu possa reter a qualidade?

english

When I try to resize (shrink, in this case) and/or rotate a PNG file, it becomes very blurry. Besides (obviously) not wanting a blurry image, it's actually critical because these are shipping labels with bar codes and the image is so bad, bar code readers actually have trouble with them.

The command that I am using is

% convert input_file.png -resize 288 -rotate -90 output_file.png 
  • -resize 288 xe2x86x92 resize to a width of 288 pixels (4 inches) keeping the aspect ratio. 288 is the number of pixels for a 72DPI (printing) resolution
  • -rotate -90 xe2x86x92 rotates the whole image anti-clockwise 90xc2xb0

The file that you get from eBay, USPS Click-n-Ship, or PayPal is a 4x6 inch label either in PNG or PDF. I choose PNG since I need to rotate it as I'm using my laser printer with letter sized labels (Avery 8127). I have to resize it because the PNG they provide is huge! Looking at the size in Preview, it's 17x25 inches.

I have researched this extensively, but the solutions I've found only marginally improve the sharpness of image. The end result is that depending on the bar code reader it may or may not read it. For example, I have two readers - a simple 2D Symbol bar code reader that more often than not will fail. However, my more expensive Focus 3D reader will read it more often, but still sometimes fail.

  • Imagemagick converted image is blurry

  • ImageMagick v6 Examples -- Blurring and Sharpening Images

  • Blurry resized PNG. How do I keep the quality the image?

  • ImageMagick v6 Examples -- Resize or Scaling (General Techniques)

    From this page

    However, many filters (even the default filters) can blur images slightly. It is part of their nature. So normally this 'short-circuit' for a no-op resize a good thing.

None of these worked.

I was under the impression that if I make an image smaller, I wouldn't lose quality however, this doesn't seem to be the case. So, my question is, how can I resize this image so that I can retain the quality?

           

Lista de respostas

1
 
vote

O truque aqui é aumentar a densidade (resolução) da imagem original antes de fazer qualquer outro processamento como redimensionar ou girar.

  % convert -density 300 inputfile.png inputfile.png    

Normalmente, seria necessário especificar as unidades ( -units PixelsPerInch ou -units PixelsPerCentimeter ) junto com densidade, mas desde Arquivos PNG usam apenas a unidade Pixels / cm , não é necessário aqui.

A razão pela qual temos que fazer isso é porque para redimensionar uma imagem, deve passar por um (ou mais) de vários filtros (algoritmos). Com uma baixa resolução (como 72 dpi para impressão), simplesmente não há dados suficientes para os algoritmos usarem para seus cálculos. O ImageMagick tem uma seção de Lenghthy sobre redimensionamento e os diferentes filtros que você pode usar e como eles funcionam: https: //legacy.imageemagick.org/usage/resize/#Other . Infelizmente, nenhum funcionou bem o suficiente até que percebi que os dados da imagem eram muito "finos".

Não fazendo nada além de aumentar a densidade, estamos essencialmente dando o mesmo elemento (uma única linha de código de barras, por exemplo) mais pontos de dados para trabalhar quando nós manipulamos a imagem mais tarde. Quanto mais tiver, mais preciso pode ser embora o trade off é velocidade. Levará mais tempo para processar.

Ao fazer isso primeiro e depois manipular a imagem, consegui obter uma imagem nítida e clara no tamanho que eu precisava para imprimir na minha impressora a laser. A outra opção que tinha era comprar uma impressora de etiqueta dedicada (como as impressoras Zebra ou Brother) para que eu pudesse usar o PDF de alta qualidade que eles forneceram.

Abaixo está um processo mais passo a passo de como manipular a imagem para obter o resultado desejado


Se olharmos para a resolução do arquivo de imagem original ( identify -ping -verbose image.png | head ), vemos que é definido para uma resolução de 28.35x28.35 ppcm e um tamanho de impressão de 42,328cm x 63.4921cm (16.66 "x 25").

    Filename: sample_label_orig.png   Format: PNG (Portable Network Graphics)   Mime type: image/png   Class: PseudoClass   Geometry: 1200x1800+0+0   Resolution: 28.35x28.35   Print size: 42.328x63.4921   Units: PixelsPerCentimeter   Colorspace: Gray    

Como tudo é métrica, para converter para polegadas, multiplicar por 2,54. 28 PPCM traduz para 72 ppi (ou 72 dpi). Isso é supostamente o DPI correto para impressão.

Você pode usar o mesmo nome de arquivo para entrada e saída para que ele faça as alterações "no lugar". Estou usando um arquivo separado para este exemplo.

  % convert -density 300 sample_label_orig.png sample_label.png     

Quando a densidade / resolução é aumentada para 300 ppcm, tudo se encaixa. No entanto, não se deixe enganar pelo novo tamanho de impressão; é 4cm x 6cm não 4 "x 6"!

    Filename: sample_label.png   Format: PNG (Portable Network Graphics)   Mime type: image/png   Class: PseudoClass   Geometry: 1200x1800+0+0   Resolution: 300x300   Print size: 4x6   Units: PixelsPerCentimeter   Colorspace: Gray    

Agora, em vez de redimensionar o rótulo, simplesmente especificamos a nova geometria da etiqueta. Observe que geometria não é o tamanho de impressão do rótulo. São as dimensões do rótulo multiplicado pela densidade. Então, um rótulo de 4x6 polegadas seria 10.16x15,24 cm que significa que a geometria final seria de 300 * (10.15x15.24) = 3048x4572.

  % convert sample_label.png -geometry 3048x4572 label_out.png    

Agora, quando olhamos para os detalhes do rótulo ( identify -ping -verbose label_out.png | head ), tudo é como deveria ser. É um rótulo de 4x6 polegadas (convertido de cm) com uma resolução de 300 ppcm

    Filename: label_out.png   Format: PNG (Portable Network Graphics)   Mime type: image/png   Class: PseudoClass   Geometry: 3048x4572+0+0   Resolution: 300x300   Print size: 10.16x15.24   Units: PixelsPerCentimeter   Colorspace: Gray    

Podemos até girar o rótulo ao mesmo tempo que alteramos a geometria para tornar o processo mais eficiente.

  -units PixelsPerInch0   

Isso criará uma etiqueta nítida e clara na orientação correta a ser impressa na impressora a laser.

 

The trick here is to increase the density(resolution) of the original image before doing any other processing like resizing or rotating.

% convert -density 300 inputfile.png inputfile.png 

Normally, it would be necessary to specify the units (-units PixelsPerInch or -units PixelsPerCentimeter) along with density, but since PNG files only use the pixels /cm unit, it's not necessary here.

The reason we have to do this is because to resize an image, it must pass through one (or more) of several filters (algorithms). With a low resolution (like 72 dpi for printing) there simply isn't enough data for the algorithms to use for their calculations. ImageMagick has a lenghthy section on resizing and the different filters you can use and how they work: https://legacy.imagemagick.org/Usage/resize/#other. Unfortunately, none worked well enough until I realized that the data in the image was just too "thin."

By doing nothing other than increasing the density we're essentially giving the same element (a single bar code line for example) more data points to work with when we do manipulate the image later on. The more it has, the more accurate it can be though the trade off is speed. It will take longer to process.

By doing this first and then manipulating the image, I was able to achieve a crisp and clear image at the size I needed for printing on my laser printer. The other option I had was to purchase a dedicated label printer (like the Zebra or Brother printers) so I could use the high quality PDF they supplied.

Below is a more step-by-step process of how to manipulate the image to get the desired result


If we look at the resolution of the original image file (identify -ping -verbose image.png | head) we see that it's set for a resolution of 28.35x28.35 ppcm and a print size of 42.328cm x 63.4921cm (16.66" x 25").

  Filename: sample_label_orig.png   Format: PNG (Portable Network Graphics)   Mime type: image/png   Class: PseudoClass   Geometry: 1200x1800+0+0   Resolution: 28.35x28.35   Print size: 42.328x63.4921   Units: PixelsPerCentimeter   Colorspace: Gray 

Since everything is metric, to convert to inches, multiply by 2.54. 28 ppcm translates to 72 ppi (or 72 DPI). This is supposedly the correct DPI for printing.

You can use the same filename for both input and output so it makes the changes "in place." I'm using a separate file for this example.

% convert -density 300 sample_label_orig.png sample_label.png  

When the density/resolution is increased to 300 ppcm, everything falls into place. However, don't be fooled by the new print size though; it's 4cm x 6cm not 4" x 6"!

  Filename: sample_label.png   Format: PNG (Portable Network Graphics)   Mime type: image/png   Class: PseudoClass   Geometry: 1200x1800+0+0   Resolution: 300x300   Print size: 4x6   Units: PixelsPerCentimeter   Colorspace: Gray 

Now, instead of resizing the label, we simply specify the new label geometry. Note that geometry not the print size of the label. It's the dimensions of the label multiplied by the density. So, a 4x6 inch label would be 10.16x15.24 cm meaning the final geometry would be 300*(10.15x15.24) = 3048x4572.

% convert sample_label.png -geometry 3048x4572 label_out.png 

Now, when we look at the details of the label (identify -ping -verbose label_out.png | head), everything is as it should be. It's a 4x6 inch label (converted from cm) with a 300 ppcm resolution

  Filename: label_out.png   Format: PNG (Portable Network Graphics)   Mime type: image/png   Class: PseudoClass   Geometry: 3048x4572+0+0   Resolution: 300x300   Print size: 10.16x15.24   Units: PixelsPerCentimeter   Colorspace: Gray 

We can even rotate the label at the same time we change the geometry to make the process more efficient.

% convert sample_label.png -geometry 3048x4572 -rotate -90 label_out.png 

This will create a crisp and clear label in the correct orientation to be printed on the laser printer.

 
 
       
       

Perguntas relacionadas

1  Programa OS X para visualizar o arquivo .xif  ( Os x program to view xif file ) 
Eu tenho alguns arquivos de imagem antigos .xif de um aplicativo de digitalização (Pagis / ScanSoft) que eu gostaria de visualizar / converter para PDF. Tente...

3  Apple Quicktake ™ 150 câmera fotos no formato QuickDraw  ( Apple quicktake 150 camera pictures in quickdraw format ) 
Apple Quicktake 150 Câmera Imagens em " QuickDraw Picture " O formato não pode ser aberto por qualquer software que eu tenha. Em algum momento nos trechos...

0  Automator Ação "Girar Imagens" é incrivelmente com a memória intensiva  ( Automator action rotate images is incredibly memory intensive ) 
Estou construindo um fluxo de trabalho automático para girar imagens. Parece que sips e outras possibilidades de rotação de imagem não alteram os bits da im...

4  MacOS: PNG sem perdas para a conversão PDF  ( Macos lossless png to pdf conversion ) 
Eu tenho várias páginas importadas do scanner no formato PNG. Eu uso editor de imagem para limpar algum ruído, downscale para 100pdi, converter paleta de imag...

9  Qual é a diferença entre milhões e bilhões em configurações de cores de impressora / scanner?  ( What is the difference between millions and billions in printer scanner colour s ) 
As "Impressoras & Scanners de Amp; Scanners" Definir painel de preferência tem duas opções de cores: "Milhões" ou "bilhões" de cores. Eu não posso dizer a ...

2  Como remover "where de" dados xattr de arquivos de imagem baixados no Mac?  ( How to remove where from xattr data from image files downloaded in mac ) 
Oi, então eu estou no meu Wits End Coz Eu estou tentando remover dados xattr em um arquivo de imagem que é um "onde de" dados xattr. Isso é em um Mojave Mac. ...

3  O JPEG Converter do ImageMagick para PDF gira até páginas 180 °  ( Imagemagicks convert jpeg to pdf rotates even pages 180 ) 
Quando eu uso o JPEG Converter do ImageMagick à ferramenta PDF: convert *.jpeg output.pdf uma saída PDF é criado, mas o que eu notei é que as páginas...

0  Geotagging com fotos ou outro aplicativo  ( Geotagging with photos or other app ) 
Eu tenho ~ 100GB de fotos que importei em fotos. As fotos ficaram no lugar porque estão nas subpastas relacionadas à data. Eu ficaria com classificação origin...

1  Redimensionamento de imagem SIPS: Capa de fundo  ( Sips image resize background cover ) 
Usando os SUNIs, eu possa redimensionar uma imagem usando sips -Z 256 para reduzir a largura e a altura da minha imagem para um tamanho não maior que 256px....

15  Para instalar o ImageMagick de Brew e consertar seu link  ( To install brews imagemagick and fix its symlink ) 
Suponha que você instalei o ImageMagick por brew install imagemagick Mas não entra no seu caminho. Por exemplo, eu corro sem sucesso compare Com...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.