Не могу нарисовать текст в CGContext в xamarin.ios?IOS

Программируем под IOS
Ответить
Anonymous
 Не могу нарисовать текст в CGContext в xamarin.ios?

Сообщение Anonymous »

Я пытаюсь нарисовать текст и получить значения (x,y) текста.
Я установлю фон на (R=0,B=0,G=0) и задаю цвет текста до (R=255,G=255,B=255).
и я хочу знать, какой это пиксель (R=255,G=255,B=255).
Я попробовал несколько методы.
UIGraphics.BeginImageContext(new CGSize(309, 60));
using (var gra = UIGraphics.GetCurrentContext())
{
gra.SetLineWidth(1);
var font = UIFont.SystemFontOfSize(13);
UIGraphics.PushContext(gra);
gra.SaveState();
var attributedString = new NSAttributedString("这是一个文本", new CTStringAttributes
{
Font = new CTFont(font.Name, 13),
ForegroundColor = UIColor.Red.CGColor,
StrokeColor = UIColor.FromRGB(255, 255, 255).CGColor
});
attributedString.DrawString(new CGRect(0, 0, 309, 60));
gra.RestoreState();

UIGraphics.PopContext();
var imgData= gra.AsBitmapContext().Data;
}

но весь пиксель imgData имеет номер #000000 нет (R=255,G=255,B=255)пикселя.
если я добавлю gra.SetStrokeColor(UIColor.FromRGB(255,255,255).CGColor); все пиксели станут (R=255,G=255,B=255).
Я пытался использовать глиф для рисования текста, но получил тот же результат.
как получить пикселей?
Я буду использовать этот код:
width = (int)gra.AsBitmapContext().Width;
height = (int)gra.AsBitmapContext().Height;
bytesPerPixel = (int)gra.AsBitmapContext().BytesPerRow / width;
bytesPerRow = (int)gra.AsBitmapContext().BytesPerRow;

int i = (bytesPerRow * y) + (x * bytesPerPixel);

var red = Marshal.ReadByte(raw) / 255.0f;
var green = Marshal.ReadByte(raw + 1) / 255.0f;
var blue = Marshal.ReadByte(raw + 2) / 255.0f;


Подробнее здесь: https://stackoverflow.com/questions/792 ... amarin-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»