Como posso salvar uma imagem como um arquivo PNG ou JPG com um determinado tamanho de arquivo de saída? (Pref. Em C #)

StackOverflow https://stackoverflow.com/questions/421056

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu gostaria de salvar uma imagem existente como um PNG ou JPG em um determinado tamanho do arquivo, por exemplo, 100KB.

Foi útil?

Solução

PNG utiliza compressão sem perdas para que você não pode comprimi-lo abaixo de um certo nível.

Em .NET você pode salvar um JPG com compactação, e acho que o tamanho do arquivo será quando concluído.

http: // msdn.microsoft.com/en-us/library/system.drawing.image.save(VS.80).aspx -. Veja a "imagem Salvar JPEG com o valor de compressão" seção

Além disso, você pode redimensionar as dimensões da imagem para torná-lo menor.

Outras dicas

Apenas quando usando JPG 2000 você pode definir o tamanho do arquivo para um valor específico. Usando JPG, você vai ter que tentar valores diferentes de qualidade e usando PNG vai chegar um tamanho para uma determinada imagem e um nível de compressão -. Você só pode tentar redimensionar a imagem que lhe dará um tamanho menor

Você também pode tentar para redimensionar a imagem de modo que uma imagem não compactada teria o tamanho que você quiser, mas, em seguida, PNG e, especialmente, JPG, muitas vezes, tem um tamanho de arquivo menor muito.

Para PNG não há realmente uma configuração de qualidade, então você realmente não pode controlar o tamanho do arquivo.

Jpg tem uma configuração de qualidade que determina como boa uma qualidade da imagem será. configurações de qualidade inferior resultam em arquivos menores. No entanto, normalmente não há opção para "dar a qualidade necessária para um arquivo de tamanho x".

Você pode conseguir o mesmo resultado usando uma abordagem bastante ineficiente de converter para jpg na memória, vendo o quão grande a saída é, ajustando a qualidade cima ou para baixo e repetindo até chegar perto o suficiente. Pode parecer terrível, mas se as imagens não são muito grandes você pode encontrar ninguém percebe o pequeno atraso enquanto você faz isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top