Баг замечен на Android.
Предположим у нас есть приложение, в котором по нажатию на кнопку подгружается картинка в «TImage» (Width: 310; Height: 150). Картинки могут быть как меньшего размера (например, Width: 215; Height: 150), так и большего (Width: 440; Height: 150). Высота указана одинаковой для примера, чтобы было проще понять, как выглядит баг.
Я сделал три картинки и поместил их в ресурсы приложения. Для обозначения границ «TImage», поместил «TImage» в «TRectangle».
Подгружаю из ресурсов:
var
InStream: TResourceStream;
i: integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
if i=3 then i := 1
else i := i+1;
// Load image
InStream := TResourceStream.Create(HInstance, 'Test_' + IntToStr(i), RT_RCDATA);
try
Image1.Bitmap.LoadFromStream(InStream);
finally
InStream.Free;
end;
end;
Если мы ни чего не добавляли вручную в «MultiResBitmap», то все подгружаемые в «TImage» картинки не подстраиваются под размеры «TImage», т.е. остаются в оригинальных размерах.
А теперь мы добавим любую картинку в «MultiResBitmap» с настройкам по умолчанию:
Например, картинку Width: 380; Height: 120.
И в таком виде компилируем приложение, вот что мы получим:
Как видите, теперь все картинки растягиваются по бОльшему размеру одной из сторон самой картинки, т.е. подгоняются автоматически под размеры TImage(Width: 310; Height: 150) сохраняя при этом пропорции сторон.
Вопрос: Как исправить ситуацию своими силами, т.е. сделать как при добавлении любой картинки в «MultiResBitmap», но без ручного добавления картинки? Чтобы все подгружаемые картинки сохраняли пропорции и при этом растягивались также по размерам «TImage».
p.s. По поводу прозрачности тема на форуме тоже есть.
Тестовое приложение прикладываю.TImageBitmap.zip