On 2008/12/10, at 23:25, yukio.m...@gmail.com wrote:
> デジカメで作成したJPEG画像のサムネイル(小さいサイズのJPEG
> 画像)を生成する関数を作成しようと考えています。
読み込みと保存の部分がありませんが、image のサイズ変更
は以下の関数でできます。
参考になるでしょうか?
void resizeImage( NSImage *anImage, NSSize newSize )
{
NSImage *workImage = [[NSImage alloc] initWithSize:newSize];
NSSize oldSize = [anImage size];
NSRect sourceRect = NSMakeRect(0, 0, oldSize.width,
oldSize.height);
NSRect destRect = NSMakeRect(0, 0, newSize.width, newSize.height);
[anImage setScalesWhenResized:YES];
[anImage setSize:newSize];
[workImage lockFocus];
[anImage drawInRect:destRect fromRect:sourceRect
operation:NSCompositeCopy fraction:1.0];
[workImage unlockFocus];
[workImage release];
}
-----------------------------------------------------
Satoshi Matsumoto <sat...@mac.com>
816-5 Odake, Odawara, Kanagawa, Japan 256-0802
Finder の情報パネル「このアプリケーションで開く」で、そのファ
イルをダブルクリックしたときに起動されるアプリケーションを参
照したり変更したりできます。
Cocoa からは、NSWorkspace の以下のメソッド
- (BOOL)getInfoForFile:(NSString *)fullPath application:(NSString
**)appName type:(NSString **)type;
で、起動されるアプリケーションを参照することはできます。
しかし、この起動アプリケーションをCocoaから変更する方法
がわかりません。
どなたかご存知でしたら教えてもらえるとうれしいです。
On 2009/07/31, at 23:39, wang wrote:
> ~/Library/Preferences/com.apple.LaunchServices.plist
> に記録されているのでこれを直接編集すれば変更できますが、そ
> ういうことじゃないですよね。
> CarbonのLaunchServecesで編集するAPIがあるかも知
> れませんが、こちらは使ったことがありません。
LaunchServecesのProgramming Guideを読むと特定のファイル
について、ダブルクリックしたときに起動するアプリケーションのことを
User-Specified Binding Preferences
http://developer.apple.com/documentation/Carbon/Conceptual/LaunchServicesConcepts/LSCConcepts/LSCConcepts.html#/
/apple_ref/doc/uid/TP30000999-CH202-DontLinkElementID_8
というらしいです。
それを LSGetApplicationForItem で参照することはできるの
ですが、プログラムから設定する方法がわかりません。
特定のファイルについてではなく、特定のタイプ(UTI)には以
下で起動アプリケーションを設定できそうなのですが。
OSStatus LSSetDefaultRoleHandlerForContentType ( CFStringRef
inContentType, LSRolesMask inRole, CFStringRef inHandlerBundleID );
うーむ。
On 2009/08/01, at 11:58, wang wrote:
> コマンドラインからはls -l@で参照できるファイルごとの
> 拡張情報の中に入っています。
> xattr -l で観ると、
> com.apple.FinderInfoのなかになにかフラグ情報が含まれていて
> 実際にどのアプリから参照されるかは
> com.apple.ResourceForke中に含まれているようです。
たしかに、xattr -l で観ると TextEditが起動される
書類には、com.apple.ResourceForkのなかに
0F80 86 00 00 04 04 00 00 00 1B 2F 41 70 70 6C 69 63 ........./
Applic
0F90 61 74 69 6F 6E 73 2F 54 65 78 74 45 64 69 74 2E ations/
TextEdit.
0FA0 61 70 70 00 00 00 00 00 00 00 00 00 00 00 00 00
app.............
が含まれていて、それをFinderの情報パネルで、Jedit
X(E) で起動するように変更すると
0F80 86 00 00 04 04 00 00 00 26 2F 55 73 65 72 73 2F ........&/
Users/
0F90 73 61 74 6F 73 68 69 2F 44 65 73 6B 74 6F 70 2F satoshi/
Desktop/
0FA0 4A 65 64 69 74 20 58 20 28 45 29 2E 61 70 70 00 Jedit X
(E).app.
0FB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 ................
のように書き変わりました。
リソースフォークにその書類の起動アプリケーション情報が書かれ
ているようです。
これを、プログラムから変更するのはどのようにしたらいいので
しょうかね。
うーむ。
-----------------------------------------------------
Satoshi Matsumoto <sat...@mac.com>