Nếu tôi tạo ra một NSImage
qua một cái gì đó như:Đang cố gắng để biến [NSImage imageNamed: NSImageNameUser] vào NSData
NSImage *icon = [NSImage imageNamed:NSImageNameUser];
nó chỉ có một đại diện, một NSCoreUIImageRep
mà có vẻ là một lớp riêng.
Tôi muốn lưu trữ hình ảnh này như một NSData
nhưng nếu tôi yêu cầu các TIFFRepresentation
tôi nhận được một biểu tượng nhỏ khi thực NSImage
tôi ban đầu được tạo ra dường như là vector và sẽ mở rộng quy mô để điền vào xem hình ảnh của tôi độc đáo.
Tôi đã hy vọng những hình ảnh được thực hiện theo cách này sẽ có một NSPDFImageRep
Tôi có thể sử dụng.
Bất kỳ ý tưởng nào về cách tôi có thể nhận được NSData
(pref phiên bản vectơ hoặc tệ hơn một phiên bản bitmap tỷ lệ lớn) của số NSImage
này?
CẬP NHẬT
đã nói chuyện với một số người on Twitter và họ cho rằng nguồn gốc thực sự của những hình ảnh này là đa độ phân giải ICNS file (có lẽ không vector tại tất cả). Tôi không thể tìm thấy vị trí của chúng trên đĩa nhưng thú vị để nghe không-ít hơn.
Ngoài ra, họ đề nghị tôi tạo hệ thống NSImage và tự hiển thị nó thành NSImage có độ phân giải cao của riêng tôi. Tôi đang làm điều này bây giờ và nó làm việc cho nhu cầu của tôi. Mã của tôi:
+ (NSImage *)pt_businessDefaultIcon
{
// Draws NSImageNameUser into a rendered bitmap.
// We do this because trying to create an NSData from
// [NSImage imageNamed:NSImageNameUser] directly results in a 32x32 image.
NSImage *icon = [NSImage imageNamed:NSImageNameUser];
NSImage *renderedIcon = [[NSImage alloc] initWithSize:CGSizeMake(PTAdditionsBusinessDefaultIconSize, PTAdditionsBusinessDefaultIconSize)];
[renderedIcon lockFocus];
NSRect inRect = NSMakeRect(0, 0, PTAdditionsBusinessDefaultIconSize, PTAdditionsBusinessDefaultIconSize);
NSRect fromRect = NSMakeRect(0, 0, icon.size.width, icon.size.width);;
[icon drawInRect:inRect fromRect:fromRect operation:NSCompositeCopy fraction:1.0];
[renderedIcon unlockFocus];
return renderedIcon;
}
(? Cố gắng đăng bài này là câu trả lời của tôi, nhưng tôi không có đủ uy tín)
Câu hỏi của bạn hữu ích đối với tôi và câu trả lời của bạn đã hoạt động. – Guillaume