Afronding hoeken van foto's met ImageMagick

stemmen
8

in mijn Rails app Ik wil een vergelijkbaar profiel sectie zoals Facebook, waar geüploade afbeeldingen automatisch worden thumbnail-and-hoek afgerond te hebben. Ik ben met behulp van het convertprogramma om afbeeldingen in thumbnails slanken, maar is er een mogelijkheid om hun hoeken te ronden? Bedankt.

De vraag is gesteld op 05/04/2009 om 04:56
bron van user
In andere talen...                            


4 antwoorden

stemmen
4

Hier zijn een aantal afgeronde hoeken voorbeelden: http://www.imagemagick.org/Usage/thumbnails/#rounded_border . Je moet een masker van een soort te maken (met de hand of met behulp van de tekengereedschappen) en vervolgens overlay op uw imago.

antwoordde op 05/04/2009 om 05:04
bron van user

stemmen
7

Facebook biedt geen foto's wijzigen om afgeronde hoeken te hebben. In plaats daarvan gebruiken ze HTML en CSS om dit beeld te brengen over elke gebruiker foto: http://www.facebook.com/images/ui/UIRoundedImage.png

Als je te inspecteren UIRoundedImage.png, zult u merken dat elke "vierkant" bestaat uit een transparante center, en ondoorzichtige hoeken die zijn bedoeld om de achtergrond waarop de gebruiker foto zal rusten passen. Bijvoorbeeld, als de gebruiker beeld is op een witte achtergrond, dan witte ondoorzichtige afgeronde hoeken zal worden gelegd op de foto gebruiker.

De CSS techniek voor het gebruik van slechts een specifiek deel van UIRoundedImage.pngheet "CSS sprites". U kunt hier meer over lezen: http://www.alistapart.com/articles/sprites/

antwoordde op 05/04/2009 om 05:32
bron van user

stemmen
0

Hier is de code die ik schreef hoeken ronden met ImageMagick met behulp van Perl. Het moet poort om Ruby vrij gemakkelijk:

http://article.gmane.org/gmane.comp.video.graphicsmagick.apis/322

antwoordde op 08/02/2011 om 00:24
bron van user

stemmen
9

universele oplossing

Deze oplossing werkt met transparante en niet-transparante foto's. Toevoegen 15 pixels straal afgeronde hoeken original_picture.pngdie een 100x100 beeld:

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

Deze oplossing werd gegeven door PM hier: https://stackoverflow.com/a/1916256/499917

Elegante oplossing, werkt niet met transparante foto's

Deze oplossing werkt zonder tussenbeeld. Wat leuk! Maar het zal de transparantie van uw originele foto's te verstoren. Dus alleen gebruiken als u zeker weet dat uw afbeelding is niet transparant.

Stel, u wilt afgeronde hoeken met 15px radius:

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

Voor het gemak, hier is wat je normaal gesproken zal doen in Ruby of een andere talen:

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}`

Bron: http://www.imagemagick.org/Usage/thumbnails/#rounded

antwoordde op 24/09/2013 om 22:17
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more