2011-01-11 1 views
1

L'exigence est comme ceci, Je voudrais obtenir une seule grandes images PNG pour un bouton, cette image unique contiendra des images pour plus, bouton cliqué, sortie de la souris qui doivent être affichés, Single PNG taille du fichier serait 1024 X 28, de sorte que chaque image ont une taille d'environ 256 X 28, Je googler la meilleure approche possible mais ne pouvait pas faire comment y parvenir,NSImage chargement d'une partie de l'image

Je suit l'approche à l'esprit,

Je veux savoir ce que je dois donner dans le paramètre NSData, 0123,

Est-il possible de charger une image unique et une image découpée en conséquence au fur et à mesure des besoins.

Merci à l'avance

+1

Pourquoi voudriez-vous faire cela? Vous subvertissez directement le système d'exploitation intelligent qu'Apple a mis en place pour cacher et afficher UIViews afin de ... économiser d'avoir à découper l'image? Gardez une trace de 3 images au lieu de 1? Quel est l'avantage qui vaut la peine de contrer ce que le système d'exploitation est conçu pour bien faire? –

+0

Salut Matthew, un autre cas d'utilisation est comme ceci, je dois placer l'image contre chaque élément de menu, j'aurais un grand PNG de disons 128X28, je dois extraire une image simple de 28 X 28 et assigner ce NSImage perticular au Menu, j'espère pouvoir vous expliquer. – Amitg2k12

Répondre

0

Il n'y a pas moyen simple soutenu Cocoa à lire seulement un sous-rectangle de l'image de ses données. Cependant, il est simple de lire l'image entière et d'utiliser uniquement un rectangle de sélection de l'image lors de la composition. Avec toutes les API disponibles, il vaudrait peut-être mieux utiliser la méthode standard + [NSImage imageNamed:] pour lire les images individuellement et laisser le système d'exploitation gérer la mise en cache.

Quoi réel, le problème de performance mesurée voulez-vous résoudre? Existe-t-il réellement ou s'agit-il d'une optimisation prématurée?

+0

HI, Nous portons une application Windows sur le MAC, pour maintenir la cohérence, nous aimerions utiliser l'ensemble d'images existantes qui est au-dessus, c'est-à-dire qu'il y aurait une grande image unique, utiliser une portion/sous-triangle pour créer NSImage et assigner au bouton, menu ite etc ..., maintenant comment puis-je obtenir la même chose dans COCOA – Amitg2k12

+0

1) C'est "Mac" et "Cocoa". Ce ne sont pas des acronymes. 2) J'ai déjà répondu à cette question: charger l'image entière et utiliser des sous-images de l'image pour créer les images individuelles en mémoire. –

+0

sur le chargement d'une image complète, j'ai compris, mais ma question est, comment puis-je créer un autre point NSImage en utilisant subrect de l'image existante, pourquoi, si j'ai NSImage de sous-rect je peux facilement attribuer à toutes les commandes comme bouton, menu , NSImageview etc., je suppose que vous dites utiliser drawRect et dessinez un sous-programme de NSImage mais si j'utilise ceci, alors je dois ajouter beaucoup de code pour chaque contrôle, – Amitg2k12