Nsimage ImageNamed: بالنسبة إلى Mac Mini يعيد أيقونة صغيرة بدلاً من الدقة عالية

StackOverflow https://stackoverflow.com/questions/1628824

سؤال

عند استخدام NSImageimageNamed: طريقة للحصول على أيقونة الكمبيوتر الحالي ، إذا كنت أقوم بتشغيل Mac Mini ، فأنا أحصل على صورة منخفضة الدقة. إذا قمت بتشغيل نفس الرمز من جهاز MacBook الخاص بي ، فأنا أحصل على أيقونة عالية الدقة كما أتوقع.

قانون بلدي على النحو التالي:

NSImage *image;
image = [NSImage imageNamed:@"NSComputer"];
[image setSize: NSMakeSize(512,512)];
NSData  * tiffData = [image TIFFRepresentation];
NSBitmapImageRep *bitmap = [NSBitmapImageRep imageRepWithData:tiffData];
data = [bitmap representationUsingType:NSPNGFileType properties:nil];
mime = @"image/png";

عندما أقوم بتشغيل ذلك على جهاز MacBook الخاص بي ، يعمل كل شيء بشكل رائع وأحصل على رمز 512 × 512 لجهاز الكمبيوتر الخاص بي. عندما أقوم بتشغيله على جهاز Mac Mini الخاص بي ، أحصل على أيقونة 32 × 32 تم رفعها إلى 512x512.

أي أفكار حول كيف يمكنني الحصول على النسخة عالية الدقة؟

هل كانت مفيدة؟

المحلول

أعتقد أن الصورة تأتي من /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/

تم تسمية أيقونة Mac Mini com.apple.macmini.icns. قد ترغب في التحقق مما إذا كان هذا الملف يحتوي على أيقونة 512 × 512 على جهازك (إنه يعمل على المنجم ، ويدير الثلج Leopard) ''

لأغراض تصحيح الأخطاء ، يجب عليك أيضًا إرسال إخراج -representations إلى NSLog للتحقق من أن الرمز لا يحتوي على إصدار 512 × 512.

يحرر:

ال 10.6 ملاحظات إصدار Appkit لديه الكثير على العلاقة المحدثة بين nsimage و cgimage.

على Snow Leopard ، يمكنك الحصول على صورة الدقة الكاملة عن طريق التحويل إلى cgimageref:

NSImage* image = [NSImage imageNamed:NSImageNameComputer];
NSRect imageRect = NSMakeRect(0, 0, 512, 512);
CGImageRef cgImage = [image CGImageForProposedRect:&imageRect context:nil hints:nil];

من هناك ، يمكنك إنشاء nsimage جديد من cgimageref ، أو استخدام واجهات برمجة تطبيقات cgimagedestination* لكتابة ملف PNG.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top