D言語からObjective-CとCocoaAPIを使いたい
NSArray[NSString]からD言語stringに変換したい
NSImage の imageTypes から扱える画像の種類情報を得たい。
string関係 の API を分離してみました。
サンプルコード
Powered by Prism
img_types/dub.json
{
"authors": ["hidhok"],
"description": "A D/Objective-C Cocoa application.",
"name": "img_types",
"dflags": ["-L-framework", "-LCocoa"],
"sourceFiles": ["../cocoa/strings"]
}
img_types/source/app.d
/**
* img_types/source/app.d Version 0.0.4
*/
module img_types.main;
import core.attribute : optional, selector;
import std.conv : to;
import std.stdio : writefln;
import cocoa.strings;
void main() {
NSArray fileTypes = NSImage.imageTypes;
ulong cnt = fileTypes.count;
writefln("imageTypes の配列の要素数 %2d個", cnt);
foreach (i; 0..cnt ) {
writefln(" %2d %s", i + 1, fileTypes.strAtIndex(i).toDs);
}
}
extern (Objective-C)
extern class NSImage : NSObject {
static NSArray imageTypes() @selector("imageTypes");
}
extern (Objective-C)
extern class NSArray : NSObject {
static NSArray array() @selector("array");
NSString strAtIndex(NSUInteger) @selector("objectAtIndex:");
NSUInteger count() @selector("count");
}
cocoa/strings.d
Terminal
(base) hidhok % dmd -L-framework -LCocoa img_types.d
(base) hidhok % ./img_types
imageTypes の配列の要素数 57個
1 com.adobe.pdf
2 com.apple.pict
3 com.adobe.encapsulated-postscript
4 public.jpeg
5 public.png
6 com.compuserve.gif
7 com.canon.tif-raw-image
8 com.adobe.raw-image
9 com.dxo.raw-image
10 com.canon.cr2-raw-image
11 com.canon.cr3-raw-image
12 com.leafamerica.raw-image
13 com.hasselblad.fff-raw-image
14 com.hasselblad.3fr-raw-image
15 com.nikon.raw-image
16 com.nikon.nrw-raw-image
17 com.pentax.raw-image
18 com.samsung.raw-image
19 com.sony.raw-image
20 com.sony.sr2-raw-image
21 com.sony.arw-raw-image
22 com.epson.raw-image
23 com.kodak.raw-image
24 public.tiff
25 public.jpeg-2000
26 com.apple.atx
27 org.khronos.astc
28 org.khronos.ktx
29 public.avci
30 public.heic
31 public.heics
32 public.heif
33 com.canon.crw-raw-image
34 com.fuji.raw-image
35 com.panasonic.raw-image
36 com.panasonic.rw2-raw-image
37 com.leica.raw-image
38 com.leica.rwl-raw-image
39 com.konicaminolta.raw-image
40 com.olympus.sr-raw-image
41 com.olympus.or-raw-image
42 com.olympus.raw-image
43 com.phaseone.raw-image
44 com.microsoft.ico
45 com.microsoft.bmp
46 com.apple.icns
47 com.adobe.photoshop-image
48 com.microsoft.cur
49 com.truevision.tga-image
50 com.ilm.openexr-image
51 org.webmproject.webp
52 com.sgi.sgi-image
53 public.radiance
54 public.pbm
55 public.mpo-image
56 public.pvr
57 com.microsoft.dds
(base) hidhok %
- Log
- 2024-10-01 修正
- 2023-02-06 upload