Xcode의 Playground를 사용하여 Mac에서 흐림 이미지를 폭속으로 무료로 생성하는 방법

9818 단어 MacOSXplaygroundXcode

개요



"Mac에서 모자이크와 흐림 이미지를 만들고 싶다""하지만 소프트웨어를 다운로드하여 설치하거나 싶지 않다 (or 할 수 없다)"라고 생각했을 때의 대응책의 비망록.

Xcode를 사용하여 Command + C 등으로 클립보드에 복사된 이미지를 불러오고 흐림 처리를 수행하여 출력하는 방법.

전제


  • OS: macOS Mojave (10.14.2)
  • Xcode: Version 10.1 (10B61)

  • 절차



    Xcode를 시작하고 흐림 처리를위한 프로젝트 만들기



    메뉴에서 File > New > Playground를 선택하여 새 프로젝트를 만듭니다.
    Mac PC에서 사용하기 때문에 대상 OS는 macOS로 설정하고 빈 프로젝트 Next를 클릭합니다.



    이름은 뭐든지 좋지만 「흐림 가공」이라든지 버린다.



    흐림 처리를 수행하는 프로그램 작성



    플레이그라운드의 편집 화면이 열리면, 다음의 소스를 그대로 붙여 넣는다(에러는 나오지 않을 것입니다만, 나오면 자동 fix라든지로 수시 대응해 주세요).
    import Cocoa
    import CoreImage
    
    print("[START] クリップボードのイメージをぼかします")
    // 変換処理補完ロジック:これが無いと, 変換がするが途中でエラー出力される場合がある
    extension CIImage: CustomPlaygroundDisplayConvertible {
        static let playgroundRenderContext = CIContext()
        public var playgroundDescription: Any {
            let jpgData = CIImage.playgroundRenderContext.jpegRepresentation(of: self, colorSpace: CGColorSpace(name: CGColorSpace.sRGB)!, options: [:])!
            return NSImage(data: jpgData)!
        }
    }
    
    // ぼかしレベル: 初期値 10.0, 数値が大きいほどぼかし効果大.
    let blurLevel = 10.0
    
    // クリップボードから画像データ取得
    let pasteboard = NSPasteboard.general;
    let clipboardData = pasteboard.data(forType: NSPasteboard.PasteboardType.tiff)
    if(clipboardData == nil){
        print("[WARN] Command + C でクリップボードへ画像をコピーしてください.")
        exit(1)
    }
    var sourceCiImage = CIImage(data: clipboardData!) // 変換前のCI画像
    
    // ぼかし加工 実施
    let filter = CIFilter(name: "CIGaussianBlur")
    filter?.setDefaults()
    filter?.setValue(sourceCiImage, forKey: "inputImage")
    filter?.setValue(blurLevel, forKey: "inputRadius")
    let outputImage = filter?.outputImage
    let cropRect = CGRect(origin: CGPoint(x: 0, y: 0), size: sourceCiImage!.extent.size)
    let blurredImage = NSBitmapImageRep(ciImage: outputImage!.cropped(to: cropRect)) // 変換後のCI画像
    
    // クリップボードを一度クリアし, 変換後データをセット
    pasteboard.clearContents();
    pasteboard.setData(blurredImage.tiffRepresentation!, forType: NSPasteboard.PasteboardType.png)
    print("[DONE] ぼかし完了. Command + V で任意の場所にペーストしてください.")
    
    

    이것으로 완료.
    클립보드의 이미지를 읽고, 흐리게 하고 다시 클립보드에 세트하는 처리가 완성되었다.

    확인해보기



    적절한 이미지를 Mac의 표준 이미지 뷰어 "이미지"에서 열어보십시오.



    흐리게 하고 싶은 장소를 범위 선택한다(아래 그림에서, 이해하기 어렵지만 중간 쪽을 사각형으로 드래그하고 있다)
    그런 다음 클립 보드에 복사 (Command + C)



    흐림 처리 프로그램으로 전환하여 콘솔 출력을 표시합니다 (오른쪽 상단의 탭 표시 줄 아이콘을 클릭하여 표시 할 수 있음)



    왼쪽 하단의 "실행 아이콘 (▷)"을 클릭하여 흐림 처리 프로그램을 실행합니다.
    성공하면 다음과 같이 된다(Playground는, 미리보기 아이콘 클릭으로, 아래와 같이 소스내의 특정의 장소에 미리보기 표시를 할 수 있다).



    이 상태에서 「미리보기」로 돌아가 Command + V로 붙여 넣으면 다음과 같이됩니다.



    붙여넣기 이미지는 이미지의 한가운데에 배치되므로 적당히 이동하여 겹치면 OK.
    무사히 흐림 이미지를 만들 수 있었다.

    이제 인터넷에서 흐림 도구를 새로 설치하지 않고도 "복사 ▶︎ 흐림 가공 ▶︎ 붙여 넣기"로 쉽게 흐림 가공을 할 수 있습니다.

    텍스트 문자 등의 경우는, 흐림 화상 아래의 오리지날을 시인할 수 있는 경우가 있기 때문에,
    일단 대상 개소의 배경색으로 오리지널을 완전히 채우고, 그 위에 흐림 가공한 이미지를 붙이면 좋다.

    (단, Xcode의 버전 갱신으로 소스 코드의 작성 방법이 바뀔 가능성은 있으므로 주의)

    좋은 웹페이지 즐겨찾기