Swift的图片处理类:Toucan

jopen 9年前

Toucan 是一个 Swift 库,提供整洁,快速的 API 来处理图片。可以大大简化图片的生成,支持缩放,裁剪和美化。

特性

  • 简单和智能大小调整
  • Elliptical and rounded rect masking
  • Mask with custom images
  • Chainable image processing stages

调整大小

Resize the contained image to the specified size. Depending on whatfitModeis supplied, the image may be clipped, cropped or scaled.

Toucan(image: myImage).resize(size: CGSize, fitMode: Toucan.Resize.FitMode)  or  Toucan.Resize.resizeImage(image: UIImage, size: CGSize, fitMode: FitMode = .Clip) -> UIImage

Fit Mode

FitMode drives the resizing process to determine what to do with an image to make it fit the given size bounds.

Example Mode
Clip Clip Mode
Toucan.Resize.FitMode.Clip
Resizes the image to fit within the width and height boundaries without cropping or distorting the image.

Toucan(image: portraitImage).resize(CGSize(width: 500, height: 500), fitMode: Toucan.Resize.FitMode.Clip).image
Crop Crop Mode
Toucan.Resize.FitMode.Crop
Resizes the image to fill the width and height boundaries and crops any excess image data.

Toucan(image: portraitImage).resize(CGSize(width: 500, height: 500), fitMode: Toucan.Resize.FitMode.Crop).image
Scale Scale Mode
Toucan.Resize.FitMode.Scale
Scales the image to fit the constraining dimensions exactly.

Toucan(image: portraitImage).resize(CGSize(width: 500, height: 500), fitMode: Toucan.Resize.FitMode.Scale).image

Masking

Alter the original image with a mask; supports ellipse, rounded rect and image masks.

Ellipse Mask

Example Function
Ellipse Mask Mask the given image with an ellipse. Allows specifying an additional border to draw on the clipped image. For a circle, ensure the image width and height are equal!

Toucan(image: myImage).maskWithEllipse().image
or
Toucan.Mask.maskImageWithEllipse(myImage) -> UIImage
Ellipse Mask w. Border When specifying a border width, it is draw on the clipped image.

Toucan(image: myImage).maskWithEllipse(borderWidth: 10, borderColor: UIColor.yellowColor()).image
or
Toucan.Mask.maskImageWithEllipse(myImage, borderWidth: 10, borderColor: UIColor.yellowColor()) -> UIImage

Rounded Rect Mask

Example Function
Rounded Rect Mask Mask the given image with a rounded rectangle border. Allows specifying an additional border to draw on the clipped image.

Toucan(image: myImage).maskWithRoundedRect(cornerRadius: 30).image
or
Toucan.Mask.maskImageWithRoundedRect(myImage, cornerRadius: 30) -> UIImage
Rounded Rect Mask w. Border When specifying a border width, it is draw on the clipped rounded rect.

Toucan(image: myImage).maskWithRoundedRect(cornerRadius: 30, borderWidth: 10, borderColor: UIColor.purpleColor()).image
or
Toucan.Mask.maskImageWithRoundedRect(myImage, cornerRadius: 30, borderWidth: 10, borderColor: UIColor.purpleColor()) -> UIImage

Image Mask

Example Function
Image Mask Mask the given image with another image mask. Note that the areas in the original image that correspond to the black areas of the mask show through in the resulting image. The areas that correspond to the white areas of the mask aren’t painted. The areas that correspond to the gray areas in the mask are painted using an intermediate alpha value that’s equal to 1 minus the image mask sample value.

Toucan(image: myImage).maskWithImage(maskImage: octagonMask).image
or
Toucan.Mask.maskImageWithImage(myImage, maskImage: octagonMask) -> UIImage


项目主页:http://www.open-open.com/lib/view/home/1423039476389