Ну, проблема может быть простой, но я не могу понять. У меня есть изображение, загруженное в BitmapData. теперь я хочу взять текст из текстового ввода и поместить его в BitmapData. По сути, это рисование текста в BitmapData и получение результата в виде другого BitmapData, который будет состоять из исходного BitmapData с текстом, нарисованным поверх него в указанной позиции. Каков наилучший способ добиться этого во flex?
Рисование текста на BitmapData в Flex
comment
Вы пытаетесь поставить водяной знак/изменить исходное изображение или просто отобразить текст поверх изображения в своем приложении?
- person Jason Towne   schedule 21.05.2011
comment
Точно не водяной знак. Я просто хочу добавить текст поверх BitmapData и сохранить его как совершенно новое изображение (и с изображением, и с текстом). Так что да, измените исходное изображение, добавив на него текст.
- person redGREENblue   schedule 21.05.2011
Ответы (2)
Чтобы поместить текст в растровое изображение, вы можете сделать:
var channelName:TextField = new TextField();
channelName.textColor=0x000000;
channelName.antiAliasType = AntiAliasType.NORMAL;
channelName.alpha=1.0;
var txtFormat:TextFormat = new TextFormat("SansSerif",14,0x000000,true);
channelName.setTextFormat(txtFormat);
var bitmapdata:BitmapData = new BitmapData(
channelName.width, channelName.height, true, 0x000000);
bitmapdata.draw(channelName);
person
alicia
schedule
23.05.2011
Спасибо, это работает. Однако, что бы я ни делал, текст появляется в верхнем левом углу изображения Bitamp (0,0), как я могу сделать так, чтобы он отображался в любом месте изображения Bitmapdata?
- person redGREENblue; 23.05.2011
Вы можете использовать матрицу и метод перевода: help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/
- person alicia; 24.05.2011
Вы не можете рисовать растровые данные, скажем, но вы можете составить их из данных. Поскольку у вас есть BitmapData, достаточно просто изменить его на растровое изображение (var bitmap:Bitmap = new Bitmap(bitmapData);
), а затем добавить его в качестве источника изображения.
Теперь, когда у вас есть фактическое изображение на сцене, вы можете добавить текст над ним, используя то, что вам нравится (текст, метка, текстовое поле и т. д.), а затем вы можете сделать Bitmap.draw
по размерам изображения, чтобы вернуть информацию о пикселях. в BitmapData (в разделе Bitmap.bitmapData).
person
J_A_X
schedule
20.05.2011
Звучит отлично. Однако у меня могут возникнуть проблемы с моим требованием при таком подходе (хотя я не уверен). BitmapData имеет большой размер и уменьшается, когда я загружаю его в изображение, чтобы соответствовать размеру изображения. Если я преобразую это растровое изображение в BitmapData и сохраню, не будет ли оно иметь размер изображения (то есть уменьшенное изображение), как я могу сохранить исходный размер в этом случае?
- person redGREENblue; 21.05.2011
Вы пытались добавить элемент управления изображением, но не задали ширину и высоту элемента управления?
- person michael; 21.05.2011
да. Но проблема здесь в том, что приложение требует загрузки разных изображений во время выполнения. Таким образом, часть изображения может иметь более высокое разрешение, которое необходимо уменьшить, чтобы оно соответствовало области изображения, но при сохранении оно должно быть сохранено в исходном размере. Если я не установлю ширину/высоту изображения, изображение более высокого размера выйдет за пределы области отображения, если я смогу это правильно объяснить. Какой обходной путь я могу использовать?
- person redGREENblue; 21.05.2011
Как насчет использования ImageSnapshot для сохранения компонента.
- person michael; 23.05.2011