en mi aplicación Rails Quiero tener una sección de perfil similar, como Facebook, donde las imágenes cargadas son automáticamente miniaturas y redondeadas. Estoy usando la utilidad convert
para reducir el tamaño de las imágenes en miniaturas, pero ¿hay alguna opción para redondear sus esquinas también? Gracias.Redondeo de esquinas de imágenes con ImageMagick
Respuesta
Aquí hay algunos ejemplos de esquinas redondeadas: http://www.imagemagick.org/Usage/thumbnails/#rounded_border. Tendrá que crear una máscara de algún tipo (ya sea a mano o usando las herramientas de dibujo) y luego superponerla en su imagen.
Facebook no modifica las imágenes para que tengan esquinas redondeadas. En su lugar, usan HTML y CSS para aplicar esta imagen sobre cada imagen de usuario: http://www.facebook.com/images/ui/UIRoundedImage.png
Si inspecciona UIRoundedImage.png
, encontrará que cada "cuadrado" consiste en un centro transparente y esquinas opacas que deben coincidir con el fondo en el que descansará la imagen del usuario. Por ejemplo, si la imagen del usuario está sobre un fondo blanco, las esquinas redondeadas opacas blancas se superpondrán en la imagen del usuario.
La técnica de CSS para usar solo una parte específica de UIRoundedImage.png
se denomina "sprites CSS". Puedes leer más sobre esto aquí: http://www.alistapart.com/articles/sprites/
Aquí está el código que escribí para redondear las esquinas con ImageMagick usando Perl. Debería puerto a Ruby con bastante facilidad:
http://article.gmane.org/gmane.comp.video.graphicsmagick.apis/322
solución universal
Esta solución funciona con imágenes transparentes y no transparentes. Para añadir esquinas redondeadas 15 píxeles de radio a original_picture.png
que es una imagen de 100x100:
convert -size 100x100 xc:none -draw "roundrectangle 0,0,100,100,15,15" mask.png
convert original_picture.png -matte mask.png \
-compose DstIn -composite picture_with_rounded_corners.png
Esta solución fue dada por PM aquí: https://stackoverflow.com/a/1916256/499917
solución elegante, no funciona con imágenes transparentes
Esta solución funciona sin ninguna imagen intermedia. ¡Que agradable! Pero interrumpirá la transparencia de la imagen original. Por lo tanto, úselo solo cuando esté seguro de que su imagen no es transparente.
Suponga que desea esquinas redondeadas con 15 píxeles de radio:
convert original_picture.png \
\(+clone -alpha extract \
-draw 'fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0' \
\(+clone -flip \) -compose Multiply -composite \
\(+clone -flop \) -compose Multiply -composite \
\) -alpha off -compose CopyOpacity -composite picture_with_rounded_corners.png
Por conveniencia, aquí es lo que normalmente va a hacer en Rubí o algunos otros idiomas:
in_pic = "original_picture.png"
out_pic = "picture_with_rounded_corners.png"
radius = 15
cmd = "convert #{in_pic} \\(+clone -alpha extract " +
"-draw 'fill black polygon 0,0 0,#{radius} #{radius},0 fill white circle #{radius},#{radius} #{radius},0' " +
"\\(+clone -flip \\) -compose Multiply -composite " +
"\\(+clone -flop \\) -compose Multiply -composite " +
"\\) -alpha off -compose CopyOpacity -composite #{out_pic}"
`#{cmd}`
Fuente: http://www.imagemagick.org/Usage/thumbnails/#rounded
Cuando pruebo la versión de línea de comandos (en el cuadro de Windows 7), la esquina inferior derecha de "mask.png" está desactivada.Para solucionarlo, tuve que eliminar 1 píxel del argumento -draw, como: convertir-tamaño 100x100 xc: ninguno -draw "roundrectangle 0,0,99,99,15,15" mask.png – raider33
- 1. ¿Esquinas de la mesa de redondeo sin imagen de fondo?
- 2. Esquinas redondeadas usando ImageMagick (fondo transparente o blanco)
- 3. esquinas redondeadas en las imágenes
- 4. Esquinas más redondeadas con CSS3 o con imágenes?
- 5. Imagemagick convertir varias imágenes a tamaño PDF
- 6. Convertir varias imágenes en Imagemagick (Windows)
- 7. cómo usar imageMagick con C#
- 8. ¿Cómo debo dar imágenes de esquinas redondeadas en Android?
- 9. Redondeo de flotadores con ostringstream
- 10. ImageMagick: Capas Las imágenes con -composite converso con centro de gravedad
- 11. Esquinas de clips CSS?
- 12. UIToolbar con esquinas redondeadas
- 13. Cuadros con esquinas redondeadas
- 14. Brew vinculación con ImageMagick
- 15. ¿Cómo combinar imágenes RGB e imágenes alfa de 8 bits en un solo archivo PNG con Imagemagick?
- 16. ¿Cómo puedo comprimir el tamaño de las imágenes gif con ImageMagick?
- 17. PHP: Determine las imágenes corruptas visualmente (aún válidas) descargadas a través de Curl con GD/Imagemagick
- 18. Combinación de varias imágenes en ImageMagick con desplazamientos relativos (no absolutos)
- 19. resultados inesperados con modo de redondeo específica
- 20. Problemas con el redondeo de decimales (python)
- 21. Problema R con el redondeo de milisegundos
- 22. redondeo de entero con parseInt en javascript
- 23. ¿Cómo lidiar con TimeSpan de redondeo?
- 24. Esquinas redondeadas de fluido con jQuery
- 25. ImageMagick convertir gif con el problema de la transparencia
- 26. Redondeo necesario con números BigDecimal
- 27. error Error de WriteBlob con ImageMagick 6.7.9
- 28. versión anterior de ImageMagick con homebrew
- 29. UIImage con esquinas redondeadas transparentes
- 30. Redondeo con DecimalFormat en Java
¿Hay algún complemento de jQuery para hacer esto de forma automágrica, o es solo una ilusión? – jamtoday
Esta página muestra un ejemplo del uso del complemento jquery corners en una imagen: http://www.malsup.com/jquery/corner/image.html Hace referencia al complemento desde aquí: http: //jqueryjs.googlecode .com/svn/trunk/plugins/corner/jquery.corner.js –