Files
PINRemoteImage/Example-tvOS/PINRemoteImage.tvOSExample/ProcessingViewController.swift
Isaac Overacker b563875a3a Added tvOS example
2016-03-09 20:16:36 -08:00

78 lines
3.2 KiB
Swift

//
// ProcessingViewController.swift
// PINRemoteImage.tvOSExample
//
// Created by Isaac Overacker on 2/6/16.
//
//
import UIKit
import PINRemoteImage
class ProcessingViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if let url = NSURL(string: "https://s-media-cache-ak0.pinimg.com/1200x/2e/0c/c5/2e0cc5d86e7b7cd42af225c29f21c37f.jpg") {
imageView.pin_setImageFromURL(url,
processorKey: "rounded",
processor: { (result, cost) -> UIImage? in
if let image = result.image {
let radius = CGFloat(7.0)
let targetSize = CGSize(width: 200, height: 300)
let imageRect = CGRect(x: 0, y: 0, width: targetSize.width, height: targetSize.height)
UIGraphicsBeginImageContext(imageRect.size)
let bezierPath = UIBezierPath(roundedRect: imageRect, cornerRadius: radius)
bezierPath.addClip()
let widthMultiplier = CGFloat(targetSize.width / image.size.width)
let heightMultiplier = CGFloat(targetSize.height / image.size.height)
let sizeMultiplier = max(widthMultiplier, heightMultiplier)
var drawRect = CGRect(x: 0, y: 0, width: image.size.width * sizeMultiplier, height: image.size.height * sizeMultiplier)
if CGRectGetMaxX(drawRect) > CGRectGetMaxX(imageRect) {
drawRect.origin.x -= (CGRectGetMaxX(drawRect) - CGRectGetMaxX(imageRect)) / 2.0;
}
if CGRectGetMaxY(drawRect) > CGRectGetMaxY(imageRect) {
drawRect.origin.y -= (CGRectGetMaxY(drawRect) - CGRectGetMaxY(imageRect)) / 2.0;
}
image.drawInRect(drawRect)
UIColor.redColor().setStroke()
bezierPath.lineWidth = 5.0
bezierPath.stroke()
let ctx = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(ctx, .Overlay);
CGContextSetAlpha(ctx, 0.5);
if let logo = UIImage(named: "white-pinterest-logo") {
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextTranslateCTM(ctx, 0.0, -drawRect.size.height);
CGContextDrawImage(ctx, CGRect(x: 0, y: 0, width: logo.size.width, height: logo.size.height), logo.CGImage);
}
let processedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return processedImage;
}
return nil
})
}
}
}