Когда я добавляю текстовые аннотации к изображению без отображения изображения, семейство шрифтов всегда равно моноширинный . Как мне это исправить?
Редактировать: После еще нескольких испытаний проблема появляется как для showImage()
, так и без. При открытии сохраненного изображения семейство шрифтов теряется.
Я хочу открыть все файлы изображений в одном каталоге и добавить аннотации к каждому файлу, не показывая файл пользователю. Все работает нормально, за исключением того, что семейство шрифтов всегда monospace .
На следующем рисунке слева показан текст, добавленный без вызова showImage()
. Справа это точно такой же код, но с одним вызовом showImage()
. Как видите, семейство шрифтов не так. Код показан ниже.
Редактировать: Как упоминалось выше, правое изображение равно левому изображению, когда я закрываю правое изображение и открываю его снова.
String path = "/temporary/path/for/saving/test-img.dm4";
// create dummy image and save it
image img := RealImage("The Image", 4, 512, 512);
img = itheta
img.saveImage(path);
// - - -
// open the image and process it
img := openImage(path);
// img.showImage(); // <- This makes the difference between left and right image
// *Edit*: Both images loose their font family if they are
// closed and opened again
ImageDisplay disp;
if(img.ImageCountImageDisplays() == 0){
disp = ImageCreateImageDisplay(img, -2);
}
else{
disp = img.ImageGetImageDisplay(0);
}
Component text = NewTextAnnotation(100, 300, "Some text", 20);
text.ComponentSetForegroundColor(0, 0, 140);
text.ComponentSetFontFaceName("sans-serif");
disp.ComponentAddChildAtEnd(text);
// save so the image can be opened if it is not shown anyway
img.saveImage(path);