Как нарисовать точку, используя Core Graphics? - PullRequest
16 голосов
/ 24 ноября 2008

Я вижу API в Quartz для рисования линий и окружностей. Но все, что я хочу сделать, это указать (x, y) декартову координату, чтобы закрасить пиксель определенным значением. Как мне это сделать?

Ответы [ 7 ]

21 голосов
/ 27 ноября 2008
CGContextFillRect(context, CGRectMake(x,y,1,1));
13 голосов
/ 24 ноября 2008

Кварц не является пиксельно-ориентированным API, и его контексты не обязательно являются пиксельными буферами. Если вы хотите рисовать растровые изображения, создайте растровый контекст с CGBitmapContextCreate(). Вы предоставляете буфер, которым вы можете управлять напрямую, и можете копировать в другой контекст, создав CGImage из того же буфера, используя CGImageCreate() и нарисовав его.

7 голосов
/ 28 ноября 2011

Нарисуйте очень маленький эллипс / круг и заполните его!

CGContextAddEllipseInRect(Context,(CGRectMake (x_dot, y_dot, 3.0, 3.0));
CGContextDrawPath(Context, kCGPathFill);
CGContextStrokePath(Context);

Я использую этот код для создания маленькой точки (3х3 пикселя) в музыкальной ноте с точками.

7 голосов
/ 06 февраля 2010

У меня есть точка (линия нулевой длины), которую нужно нарисовать после установки заглавных букв в kCGLineCapRound. Линейный колпачок по умолчанию не имеет длины, поэтому его нельзя нарисовать.

Аргумент, что точка не имеет размера, глупый. Линии не имеют ширины, но мы можем их нарисовать (используя «ширину линии» из состояния рисования). Точка должна рисоваться точно таким же образом, и я считаю, что с разными строчными линией.

Может быть, это новое поведение?

4 голосов
/ 24 ноября 2008

Вы можете нарисовать линию длиной в 1 пиксель по рассматриваемой координате; это должно выполнить то, что вы хотите.

0 голосов
/ 29 апреля 2017

Свифт 3:

 UIRectFill(CGRect(x: x, y: y, width: 1, height: 1))
0 голосов
/ 30 декабря 2008

У меня та же проблема - я считаю, что лучшее решение похоже на последнее, но, по крайней мере, оно не оставляет что-то, похожее на «тире» ... конечно, следует убедиться, что х / у оба> 0.

CGContextFillRect (context, CGRectMake (x - 0,5, y - 0,5, 1,0, 1,0));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...