How to get Greek letters in text in an IMAGE using Inserttext?

13 ビュー (過去 30 日間)
Steven
Steven 2016 年 6 月 13 日
回答済み: Walter Roberson 2016 年 6 月 14 日
Hi I want to use text with Greek letter in an image (use text as part of the image) using "Inserttext" as suggested by Mathworks. But I cannot get Greek letters there, since Interpreter (latex) is not one of this function's properties. What can I do? This is the code I use (I have to use sprintf):
imgOut = insertText(imgOut, [10 100], sprintf(['a=' num2str(i,'%0.4f \alpha') ],i))
Note: I tried \alpha or \\alpha but it did not work either. Thank you.
Steven

採用された回答

Walter Roberson
Walter Roberson 2016 年 6 月 14 日
You will need to render the character to a file or to an array, and then insert that array into the image.
Up to and including R2014a (but not later), you can work like this. Caution: this uses some magic smoke to do the job!
%use the decimal unicode character number, but only a subset is supported
%the use of HTML is documented magic... documented somewhere or other
%but you have to be aware it does not work for edit or text uicontrols
h = uicontrol('style', 'push', 'String', '<HTML>&#945;');
%now shrink the size to just what is needed to contain the letter
%there is some slinky stuff about Extent working differently on different operating systems
%so you might need to fiddle a bit.
set(h, 'Position', get(h, 'Extent'));
%now use twice-magic incantations to render the uicontrol to an array
alpha_img = getPrintImage(handle(h));
Now you can store alpha_img as needed into the image you are building up.
If you do this for a number of different characters, you can re-use the same uicontrol and set its String differently. You should expect that the Extent will vary from character to character if you are using a proportional font.

その他の回答 (1 件)

Greg Dionne
Greg Dionne 2016 年 6 月 13 日
Not sure what version of MATLAB you have, but you can try unicode.
Does char(945) work for you?
sprintf('%s',char(945))
  3 件のコメント
Walter Roberson
Walter Roberson 2016 年 6 月 14 日
The support for inserting unicode was not until at least R2014b.
Steven
Steven 2016 年 6 月 14 日
Thank you Walter. So there is no other way?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLabels and Annotations についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by