Quero dimensionar uma imagem em C # com nível de qualidade tão bom quanto o Photoshop. Existe alguma biblioteca de processamento de imagem C # disponível para fazer isso?
c#
image
image-processing
image-manipulation
image-scaling
Ramesh Soni
fonte
fonte
Respostas:
Aqui está uma classe auxiliar de Manipulação de Imagem bem comentada que você pode ver e usar. Eu escrevi como um exemplo de como executar determinadas tarefas de manipulação de imagem em C #. Você estará interessado na função ResizeImage que usa System.Drawing.Image, a largura e a altura como argumentos.
Atualizar
Algumas pessoas pediram nos comentários exemplos de como consumir a classe ImageUtilities, então aqui está.
Nota
Lembre-se de que as imagens são descartáveis, portanto, você deve atribuir o resultado do seu redimensionamento a uma declaração de uso (ou você pode finalmente tentar e certificar-se de chamar a disposição em seu finalmente).
fonte
Quando você desenha a imagem usando GDI +, ela se adapta muito bem na minha opinião. Você pode usar isso para criar uma imagem em escala.
Se você quiser dimensionar sua imagem com o GDI +, faça algo assim:
fonte
new Size
na declaração descaled
:new Bitmap(original.Width * 4, original.Height * 4);
Bibliotecas testadas como Imagemagick e GD estão disponíveis para .NET
Você também pode ler sobre interpolação bicúbica e escrever sua própria.
fonte
Artigos do CodeProject discutindo e compartilhando o código fonte para dimensionar imagens:
fonte
Use esta biblioteca: http://imageresizing.net
Leia este artigo pelo autor da biblioteca: 20 Image Sizing Pitfalls with .NET
fonte
Experimente os diferentes valores para Graphics.InterpolationMode. Existem vários algoritmos típicos de dimensionamento disponíveis no GDI +. Se uma dessas opções for suficiente para sua necessidade, você poderá seguir esse caminho em vez de depender de uma biblioteca externa.
fonte
Você pode experimentar o dotImage , um dos produtos da minha empresa, que inclui um objeto para reamostrar imagens com 18 tipos de filtros para vários níveis de qualidade.
O uso típico é:
além disso, o dotImage inclui alguns comandos de processamento de imagens ímpares, incluindo muitos filtros semelhantes aos do PhotoShop, se é isso que você está procurando.
fonte
Isso pode ajudar
Observe que
InterpolationMode.HighQualityBicubic
-> geralmente é uma boa troca entre desempenho e resultados.fonte
Experimente este trecho de código básico:
fonte
Há um artigo no Code Project sobre o uso do GDI + for .NET para redimensionar fotos usando, por exemplo, interpolação bicúbica.
Também havia outro artigo sobre esse tópico em outro blog (funcionário da MS, acho), mas não consigo encontrar o link em nenhum lugar. :( Talvez alguém possa encontrá-lo?
fonte
você pode tentar este se for um filtro de imagem 2D lowres cgi
fonte
Este é um artigo que vi sendo referenciado no código do Paint.NET para reamostragem de imagem: Várias técnicas simples de processamento de imagem de Paul Bourke.
fonte
Você pode tentar o kernel mágico . Produz menos artefatos de pixelização do que a reamostragem bicúbica ao aumentar a escala e também fornece resultados muito bons ao diminuir a escala. O código fonte está disponível em c # no site.
fonte
Tenho algumas melhorias para a resposta do doutor Jones.
Funciona para quem quisesse como redimensionar proporcionalmente a imagem. Ele testou e funcionou para mim.
Os métodos da classe que adicionei:
e novo disponível usando de acordo com estes códigos:
fonte