頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


macOSでSCNView→png画像を作成、保存する

SCNViewの表示内容からpng画像を作って保存したかったんだ。なおNSSavePanelは使わない。
散々回り道したけど、こんな感じ。

{
    //(1)
    NSImage *image = [sceneView snapshot];
	
    //(2)
    NSData *imageData = [image TIFFRepresentation];
    NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:imageData];
    NSDictionary *imageProps = [NSDictionary dictionary];
    imageData = [imageRep representationUsingType:NSPNGFileType properties:imageProps];

    //(3)
    NSFileManager *fm = [NSFileManager defaultManager];
    NSURL *url =[fm homeDirectoryForCurrentUser];
    NSString *path = [url path];
    NSString *pathStr = [path stringByAppendingPathComponent: @"images/screenshot.png"];

    //(4)
    NSError *error = nil;
    if (![imageData writeToFile:pathToDesktop options:NSAtomicWrite error:&error]) {
        NSLog(@"%@",error);
    }
}
(1)まずNSImageオブジェクトを作る。snapshotで一撃。
(2)NSImageオブジェクトからNSDataオブジェクトを作る。調べるといろんなやり方があるみたい。propertiesに渡すのもなくてもいけそう(でもnilだと警告が出る)。
(3)保存先、ファイル名を指定。imagesってフォルダーを作ってそこに入れてる。
(4)保存。ダメならエラー表示。

sandbox設定
↑XcodeのTarget設定のところのApp SandboxをONにしてる場合、保存先が限られてデスクトップなどには保存できない。
{
    NSString *pathToDesktop = [NSString stringWithFormat:@"/Users/%@/Desktop/screenshot.png", NSUserName()];
}
↑保存先にデスクトップを指定すると

Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “screenshot.png” in the folder “Desktop”.

なんてエラーになる。ただしサンドボックスをOFFにしておけばデスクトップにも保存できた。なおNSSavePanelを使えばサンドボックスON/OFF関係なくどこでも保存できるみたい。

macOSのサンドボックスについてもっと勉強せねば。


サイズの合わない窓用エアコンを取り付けた

ウチの小さい部屋には外に室外機を置くスペースはもちろんそれ用の配管を通す穴もない。つまり元々エアコンを設置できるようには設計されていないんだけど、どうしても設置したくてコロナの窓用エアコンを検討してた。ヒーターを別途置くスペースもないしヒートポンプの方が電気代も安いよなってことで冷暖兼用が欲しい。

ウインドエアコンの取り付け方|ウインドエアコンシリーズ|空調・家電機器|製品情報|コロナ

↑設置に必要な幅として495mm以上とある(冷房専用なら470)。しかし、ウチの窓のサイズを確認すると445mmくらいしかない!
あかんやん、、、と最初はあきらめていたのだけどよくよく調べると実機(CWH-A1817)の横幅は360mmになってる。設置用の枠のサイズはどこを見ても書いてないんだが、実機よりちょっと大きいくらいに見える。まさか窓ストッパーを倒さないと電源が入らない、とかなってないよな?だったら取付枠さえ窓にセットできればなんとかなるんじゃないの?ということでえいや!と注文してみた。だめなら最悪DIYでエアコン設置台兼本棚みたいなのを作るつもりでいた。



窓用エアコン

↑届いたエアコンと設置するところの窓。
取付枠の横幅を測ってみると390mm程度だ。いけるかも?!

取付枠設置後

↑かろうじて取付枠が設置できた!窓ストッパーは最初からあきらめてる。
なお、元々窓のレール(?)部分に衝突防止用部品みたいなのがあってそれがためにうまく取付枠を設置できなかったので、それを強引に取り外してようやく取付枠の設置ができた。

ドレン

↑あせったのがドレン用の部品とかがあったことだ。え?不要だったんじゃないの?と思いサイトを再確認したらそれは冷房専用機であって冷暖兼用機にはドレン工事が必要とあるのだ。あちゃー、やってしもうた、、、と焦ったんだが別に画像の状態でもいいんじゃね?ってことで配管などは設置せず。

設置完了

↑無事に設置完了。試運転したらちゃんと動いたよ。でもこれ使用時には当然窓を開けておく必要があるわけだが、うっかり忘れてしまいそうな気がする。そういう気がするって場合はたいていやってしまうもんだ。取説によると室外側の吸い込み温度が高温になると停止するみたいだけど。

作業時間は2時間ちょいかな。設置に必要な条件を満たしていない方法なので自己責任で。
これでこの部屋でも快適にすごせる。ありがとう、コロナさん!
謎なのは吹出口のルーバーをどう向けようがエアフィルターが引っかかって取り出せないんだけど?


  TopPage  



Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad