Какао - рисовать изображение из двоичной строки
Я пытаюсь нарисовать изображение TIFF из строки в XCode, чтобы отобразить его в доке. TIFF-изображение получается через AppleScript, который взаимодействует с Spotify:
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 ответа
Это довольно просто с помощью скриптового моста.
Во-первых, генерировать Spotify.h
в Терминале:
sdef /Applications/Spotify.app | sdp -fh --basename Spotify
Затем импортируйте файл заголовка в свой проект, затем ссылку на ScriptingBridge.framework
,
Наконец, возьмите изображение и поместите его в док. Вот основной пример:
#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];
Я не знаком с API Spotify, однако что-то вроде этого, похоже, будет работать (преобразовать вашу строку в объект NSData:
[[NSImage alloc] initWithData:]