Viser arkivet for stikkord imagemagick

Alpha på Magick::Image

Vi hadde en bug i Origo som gjorde at sonebannere ble hentet opp i redusert kvalitet. Det viste seg at dette kom av flere bugs i controller-koden vår. Det var ikke så enkelt å finne eksempler på nettet for RMagick og bruk av alpha på PNGer. Løsningen var følgende:
image.alpha(Magick::ActivateAlphaChannel)

Dette ga følgende kode:

content_type = nil
image.alpha(Magick::ActivateAlphaChannel) if @banner.transparent? && format == "png"
image_data = image.to_blob do
  self.format = format
  case format
  when "png"
    self.compression = Magick::ZipCompression
    self.quality = 100
    content_type = "image/png"
  when /(jpeg|jpg)/
    self.compression = Magick::JPEGCompression
    self.quality = 100
    content_type = "image/jpeg"
  else
    content_type = "application/octet-stream"
  end
end

Så indekserer vel google dette, og noen andre vil finne det. Noe som igjen skulle tilsi at jeg burde skrevet dette innlegget på engelske, men pytt :-)

RMagick 2

RMagick er ute i versjon 2. Det virker som releasen først og fremst er en ment som et spark i egen bak etter lang tids stagnasjon, samtidig som det er en mulighet til å kaste eldre kode.

RMagick 2 støtter Ruby 1.9 og nyere ImageMagick-versjoner, dropper en del obskure metoder, og gidder ikke lenger å støtte GraphicsMagick. Mest nytt for oss utviklere er en metode for å eksplisitt deallokere bilder:

Image#destroy!
This method returns all the unmanaged memory used by an image to the system, making it available for reuse. After an image is destroyed, if you try to call any method (except #inspect and the new #destroyed? method), RMagick raises a DestroyedImageError exception. You no longer have to call GC.start to forcibly clean up unused images.

Andre nye features:

6 new animation optimization methods
6 new resizing filters
Combine RGB layers with Image.combine
Separate an image into RGB layers with Image#separate
Fast cropping with Image#excerpt
Support for the Q32 version of ImageMagick
Numerous improvements, big and small, to the documentation