Quiero escalar una imagen en C # con un nivel de calidad tan bueno como Photoshop. ¿Hay alguna biblioteca de procesamiento de imágenes C # disponible para hacer esto?
c#
image
image-processing
image-manipulation
image-scaling
Ramesh Soni
fuente
fuente
Respuestas:
Aquí hay una clase auxiliar de manipulación de imagen muy bien comentada que puede ver y usar. Lo escribí como un ejemplo de cómo realizar ciertas tareas de manipulación de imágenes en C #. Te interesará la función ResizeImage que toma System.Drawing.Image, el ancho y el alto como argumentos.
Actualizar
Algunas personas han estado pidiendo en los comentarios muestras de cómo consumir la clase ImageUtilities, así que aquí tienes.
Nota
Recuerde que las imágenes son desechables, por lo que debe asignar el resultado de su cambio de tamaño a una declaración de uso (o podría intentarlo finalmente y asegurarse de llamar a dispose en su finalmente).
fuente
Cuando dibujas la imagen usando GDI +, en mi opinión se escala bastante bien. Puede usar esto para crear una imagen a escala.
Si desea escalar su imagen con GDI +, puede hacer algo como esto:
fuente
new Size
en la declaración descaled
:new Bitmap(original.Width * 4, original.Height * 4);
Las bibliotecas probadas como Imagemagick y GD están disponibles para .NET
También puede leer sobre cosas como la interpolación bicúbica y escribir la suya.
fuente
Artículos de CodeProject que discuten y comparten el código fuente para escalar imágenes:
fuente
Use esta biblioteca: http://imageresizing.net
Lea este artículo del autor de la biblioteca: 20 errores de dimensionamiento de imágenes con .NET
fuente
Pruebe los diferentes valores para Graphics.InterpolationMode. Hay varios algoritmos de escalado típicos disponibles en GDI +. Si uno de estos es suficiente para sus necesidades, puede seguir esta ruta en lugar de confiar en una biblioteca externa.
fuente
Puede probar dotImage , uno de los productos de mi empresa, que incluye un objeto para volver a muestrear imágenes que tiene 18 tipos de filtro para varios niveles de calidad.
El uso típico es:
Además, dotImage incluye 140 comandos de procesamiento de imágenes extrañas que incluyen muchos filtros similares a los de PhotoShop, si eso es lo que está buscando.
fuente
Esto puede ayudar
Tenga en cuenta que
InterpolationMode.HighQualityBicubic
-> esto generalmente es una buena compensación entre el rendimiento y los resultados.fuente
Pruebe este fragmento de código básico:
fuente
Hay un artículo sobre Code Project sobre el uso de GDI + para .NET para redimensionar fotos usando, por ejemplo, la interpolación Bicubic.
También había otro artículo sobre este tema en otro blog (creo que un empleado de MS), pero no puedo encontrar el enlace en ninguna parte. :( Quizás alguien más pueda encontrarlo?
fuente
puedes probar este si es un filtro de imagen 2D de cgi de baja resolución
fuente
Este es un artículo que vi haciendo referencia en el código de Paint.NET para el remuestreo de imágenes: varias técnicas simples de procesamiento de imágenes por Paul Bourke.
fuente
Podrías probar el núcleo mágico . Produce menos artefactos de pixelación que el remuestreo bicúbico al escalar y también ofrece muy buenos resultados al escalar. El código fuente está disponible en c # desde el sitio web.
fuente
Tengo algunas mejoras para la respuesta del doctor Jones.
Funciona para quién quería cómo cambiar el tamaño proporcional de la imagen. Probó y funcionó para mí.
Los métodos de clase que agregué:
y nuevo disponible según estos códigos:
fuente