День добрый.
Я пытаюсь вывести изображение на экран телефона. Создаю CFbsBitmap* aBitmap и через CImageDecoder згружаю в него jpg. Дальше
iImage5->SetPicture(aBitmap); //iImage5 - это объект CEikImage
Выводится все нормально, но если джипег по размеру меньше то фон у iImage5 будет белый. Мне же надо черный.
Я вижу два способа решения. Первым после загрузки jpg в aBitmap (aBitmap больше по размеру чем jpg)
aBitmap->Create( TSize( 352, 165 ),aImageDecoder->FrameInfo().iFrameDisplayMode );
рисовать там прямоугольник слева через CFbsBitGc черного цвета. Но тут проблема в том что при выполнении этого кода jpg копируется не по центру (выравнивается по левому краю).
Второй способ получить как-то указатель на объект CFbsBitmap в CEikImage* iImage5, который туда попадет после
iImage5->SetPicture(aBitmap);
Я его получил, но он статический. Изменить сам CFbsBitmap не получилось.
Еще я нашел функции GetGc,DrawBackground, и CustomGc у CEikImage, но и нарисовать что-либо не получается (вылетает все).
Code:
TFileName aJPEGFile(filename);
CImageDecoder *aImageDecoder = CImageDecoder::FileNewL(fs, aJPEGFile, CImageDecoder::EOptionAlwaysThread);
CleanupStack::PushL(aImageDecoder);
CFbsBitmap* aBitmap = new (ELeave) CFbsBitmap();
aBitmap->Create( TSize( 352, 165 ),
aImageDecoder->FrameInfo().iFrameDisplayMode );
TRequestStatus aStatus;
aImageDecoder->Convert(&aStatus, *aBitmap);
User::WaitForRequest(aStatus);
iImage5->SetPicture(aBitmap);
CleanupStack::PopAndDestroy();
Кто знает как мне можно помочь? Спасибо.