Cocoa - 从二进制字符串中绘制图像

时间:2013-03-19 22:31:16

标签: cocoa spotify

我试图从XCode中的字符串中绘制TIFF图像,以便在Dock中显示它。 TIFF图像是通过与Spotify交互的AppleScript获得的:

tell application "Spotify"
set aTrackArtwork to artwork of current track
end tell

我收到的字符串是这样的:

TIFF4D4D002A00041EB821585D22595E215..

如何从这个二进制代码中绘制图像?我当前的代码(这是一个概念验证)看起来像这样:

NSImage *myImage = [[NSImage alloc] init];
myImage = [NSImage imageNamed:@"ikoner"];
[NSApp setApplicationIconImage:myImage];

有没有办法在myImage对象中绘制图像?

而且,有没有更简单的方法直接在我的Xcode项目中获取这些信息而不必依赖于AppleScript?

我的目标是创建一个简单的应用程序,获取当前播放的歌曲并在停靠栏中显示它的专辑封面。

我感谢所有可能或可能不会让我更接近答案的答案!

2 个答案:

答案 0 :(得分:1)

这与脚本桥相当简单。

首先,在终端中生成Spotify.h

sdef /Applications/Spotify.app | sdp -fh --basename Spotify

然后,将头文件导入项目,然后链接到ScriptingBridge.framework

最后,抓住图像并将其放入Dock中。这是一个基本的例子:

#import "Spotify.h"

// Get the image from Spotify
SpotifyApplication *spotify = [SBApplication applicationWithBundleIdentifier:@"com.spotify.client"];
NSImage *coverArt = spotify.currentTrack.artwork;

// Create an image view and put it in the Dock
NSImageView *imageView = [[NSImageView alloc] initWithFrame:NSZeroRect];
imageView.image = coverArt;

NSDockTile *dock = [[NSApplication sharedApplication] dockTile];
dock.contentView = imageView;
[dock display];

答案 1 :(得分:-1)

我不熟悉Spotify api,但是这样的东西似乎可以工作(将你的字符串转换为NSData对象:

[[NSImage alloc] initWithData:]