NSDrawNinePartImage пробелы - PullRequest
6 голосов
/ 04 июня 2011

Я работаю над рисованием пользовательских кнопок / текстовых полей с NSDrawNinePartImage.Я нарезаю изображение на девять частей в коде и рисую его в прямоугольнике с помощью NSDrawNinePartImage.

К сожалению, я получаю некоторые пробелы в шаблоне рисования.Я думал, что это как-то связано с моим кодом нарезки, но я сохранил их в виде изображений, откуда я их нарезал, и все они выглядят хорошо (я даже собрал их вместе, и они выглядели хорошо).В некоторых случаях я использую его, чтобы работать просто отлично, хотя, несмотря на то, что некоторые используют одни и те же изображения.

Я довольно уверен, что это сводится к реальному рисунку.

Знаете ли вы о каких-либоNSGraphicsContext или другие параметры, которые могут повлиять на это, или что-то еще, что может быть причиной этого?

С пробелами

With gaps

Без пробелов

Without gaps

Ответы [ 3 ]

4 голосов
/ 17 ноября 2011

Я исправил подобную проблему, отключив опцию сглаживания

NSGraphicsContext* theContext = [NSGraphicsContext currentContext];
[theContext saveGraphicsState];
[theContext setShouldAntialias: NO];
NSDrawNinePartImage(...);
[theContext restoreGraphicsState];
1 голос
/ 19 июля 2011

Возможно ли, что ваши верхнее левое и нижнее правое изображения имеют слишком широкий пиксель?

Эта функция использует изображения в верхнем левом и нижнем правом углу для определить ширину и высоту краевых областей, которые должны быть заполнены. Если ширина или высота нижнего левого и верхнего правого изображений не имеют соответствующего размера, они могут быть масштабированы, чтобы заполнить их угол площадь. Краевые области между углами выложены плиткой с использованием соответствующих образ. Точно так же центр области выложен плиткой с использованием указанного центра изображение.

0 голосов
/ 03 августа 2011

Используйте четные размеры изображений.Я сделал это, и это решило эту проблему для меня.

...