| Copyright | (c) digitally induced GmbH 2021 |
|---|---|
| Safe Haskell | None |
| Language | Haskell2010 |
IHP.FileStorage.Preprocessor.ImageMagick
Description
Synopsis
- applyImageMagick :: Text -> [String] -> FileInfo LByteString -> IO (FileInfo LByteString)
Documentation
applyImageMagick :: Text -> [String] -> FileInfo LByteString -> IO (FileInfo LByteString) Source #
Converts the image to the specified output format and applies specified image magick transforms
Example: Transform an uploaded image to a PNG file, resize it to 512x512 and strip meta data
let uploadLogo = uploadToStorageWithOptions $ def
{ preprocess = applyImageMagick "png" ["-resize", "512x512^", "-gravity", "north", "-extent" , "512x512", "-quality", "100%", "-strip"] }
company <- fetch companyId
company
|> fill @'["name"]
|> uploadLogo #logoUrl
>>= ifValid \case
Left company -> render EditView { .. }
Right company -> do
company <- company |> updateRecord
redirectTo EditCompanyAction { .. }Example: Transform an uploaded image to a JPEG file and strip meta data
let uploadLogo = uploadToStorageWithOptions $ def
{ preprocess = applyImageMagick "jpg" ["-strip"] }
company <- fetch companyId
company
|> fill @'["name"]
|> uploadLogo #logoUrl
>>= ifValid \case
Left company -> render EditView { .. }
Right company -> do
company <- company |> updateRecord
redirectTo EditCompanyAction { .. }