・2016/12/26
Xcode SWIFTで Mac OSX用のスクリーンキャプチャアプリ&画像保存を作る
(Mac OS X用アプリを Swift言語で作る方法、デスクトップの画像をキャプチャする方法)
Tags: [Apple], [MacBook]
● Xcode 7.3.1 Swift 2.2.1で OS X用のアプリを作る
Welcome to Swift.org
ここでは、Xcode 7.3.1 Swift 2.2.1を使用してアプリを作ります。
スクリーンキャプチャアプリを作成します。
●必要な実装処理内容の一覧
主な実装処理
・画面全体を画像として取得する
・画面の座標指定したエリアを画像として取得する
・画像を PNG画像ファイルとして保存する
// Copyright (c) 2016 FREE WING,Y.Sakamoto. All rights reserved.
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
// アプリ開始時の処理
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
let mainID = CGMainDisplayID()
print("ID is \(mainID)")
var maxDisplays: UInt32 = 0
CGGetOnlineDisplayList(0, nil, &maxDisplays)
var onlineDisplays = [CGDirectDisplayID](count: Int(maxDisplays), repeatedValue: 0)
var displayCount: UInt32 = 0
let dErr = CGGetOnlineDisplayList(maxDisplays, &onlineDisplays, &displayCount)
print("dspyCnt is \(displayCount)")
for currentDisplay in onlineDisplays[0..<Int(displayCount)] {
print("currentDisplay is \(currentDisplay)")
print("CGDisplayPixelsHigh(currentDisplay) is \(CGDisplayPixelsHigh(currentDisplay))")
print("CGDisplayPixelsWide(currentDisplay) is \(CGDisplayPixelsWide(currentDisplay))")
}
// ・画面全体を画像として取得する
let imageRep: CGImageRef = CGDisplayCreateImage(CGMainDisplayID())!
// ・画像を PNG画像ファイルとして保存する
let bitmap = NSBitmapImageRep(CGImage: imageRep)
let properties = NSDictionary() as! [String : AnyObject]
bitmap.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: properties)!
.writeToFile("/Users/xxx/ScreenShot1.png", atomically:true)
// ・画面の座標指定したエリアを画像として取得する
let captureSize: Int = 128
let centerOffset = Int(captureSize / 2)
let captureRect: CGRect = CGRect(x: 0, y: 0, width: captureSize, height: captureSize)
// kCGWindowListOptionOnScreenOnly
let option: CGWindowListOption = CGWindowListOption.OptionOnScreenOnly
// kCGNullWindowID
let relativeToWindow: CGWindowID = (CGWindowID(0))
// kCGWindowImageBoundsIgnoreFraming
let imageOption = CGWindowImageOption.BoundsIgnoreFraming
let cgImage: CGImage = CGWindowListCreateImage(captureRect, option, relativeToWindow, imageOption)!
// ・画像を PNG画像ファイルとして保存する
let bitmap2 = NSBitmapImageRep(CGImage: cgImage)
let properties2 = NSDictionary() as! [String : AnyObject]
bitmap2.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: properties2)!
.writeToFile("/Users/xxx/ScreenShot2.png", atomically:true)
}
Tags: [Apple], [MacBook]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
Xcodeで Mac OSX用のクリップボード共有&履歴アプリを作る
Mac OS X用アプリを Swift言語で作る方法、MacOSXでクリップボード監視で変化が有ったら取得
Xcode SWIFTで Mac OSX用のスクリーンマスコットアプリを作る
Mac OS X用アプリを Swift言語で作る方法、デスクトップ画面に画像をオーバーレイで描画する方法
Xcode SWIFTで Mac OSX用のスクリーン拡大鏡アプリを作る
Mac OS X用アプリを Swift言語で作る方法、マウスカーソルの位置をリアルタイムで取得する方法
Xcode SWIFTで Mac OSX用の Finderからドラッグ&ドロップを受け付けるアプリを作る
Mac OS X用アプリを Swift言語で作る方法、ドラッグ&ドロップを受け付ける方法
Xcodeで Mac OSX用の使えそうな処理を Tipsとしてまとめ
Mac OS X用アプリを Swift言語で作る方法
Apple MacBook Airを買ってみた。開発者必須アプリの紹介
Xcodeで iPhoneの開発の為に、Mac OS X用アプリを Swift言語で作る方法
Windowsパソコンで Macる。Skylake Platform in OSX86 Hackintoshの夢、BIOS設定内容
Windows PCで iPhone開発、Mac OS Xで Hackintoshの方法、DVMT Pre-Allocated 128MB
VirtualBoxに Mac OS X macOS Sierraをインストールの夢
Windowsの VirtualBoxに Mac環境を作り OS Xをインストールして動かす夢を見る
Raspberry Pi3で iPhoneの開発言語でお馴染みの Swiftを動かし、GPIOを操作して Lチカする方法
Raspbian Jessieで Swift言語のセットアップ方法、GPIOの LEDを Lチカや I2Cを制御する方法
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2016 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/xcode/xcode_swift_3_screen_capture/