2013-11-03 2 views
1

в XE5, используя TImage, как я могу растянуть растровое изображение с его пропорциональными размерами? TImage имеет ширину 200 пикселей и высоту 300 пикселей. И растровое изображение имеет ширину 130 и 80 высот. Когда я установил Image1.WrapMode в iwStretch, растровое изображение будет изменено, чтобы соответствовать области TImage, но не в пропорции масштабирования TImage, растровое изображение затем показывает слишком «жир».TImage Stretch XE5

Большое спасибо.

+1

Не [ 'TImage.WrapMode = iwFit'] (HTTP: //docwiki.embarcadero.com/Libraries/XE5/en/FMX.Objects.TImage.WrapMode) что вы ищете? Он будет сохранять пропорции изображения. –

+0

iwFit даже по умолчанию ..... –

+0

Хорошо, но когда я установил его в iwFit, изображение (растровое изображение) не соответствует высоте и ширине. Размер остается таким же, как у iwOriginal. Это ошибка? – user2880780

ответ

0

Для поддержания пропорций вы можете использовать свойство «масштаб». Например, вы загрузите изображение в IMG (TImage) в форме и с помощью кнопки вы хотите масштабировать его, вы можете сделать это:

procedure THeaderFooterForm.Button5Click(Sender: TObject); 
var testScale : Single; 
begin 
img.WrapMode := TImageWrapMode.iwOriginal; 
testScale := img.Width/img.Bitmap.Width; 
if (img.Height/img.Bitmap.Height) < testScale then 
    testScale := img.Height/img.Bitmap.Height; 


img.Scale.X := testScale; 
img.Scale.Y := testScale; 



end; 

 Смежные вопросы

  • Нет связанных вопросов^_^