Ustas писал(а):Есть возможность узнать размер пропорционально вписанной в TImage картинки, не репльный размер, а получившийся?
Вряд ли, т.к. изображение автоматом скэйлится (меняет размер), в зависимости от размера окна программы / TImage.
Хотя...,


Модератор: Модераторы
Ustas писал(а):Есть возможность узнать размер пропорционально вписанной в TImage картинки, не репльный размер, а получившийся?
Лекс Айрин писал(а):Ustas
TImage.wight/Height, как ни банально.
Image1.Picture.Width;
Image1.Picture.Height;
Лекс Айрин писал(а):Ustas, вообще-то, стоит учитывать, что TImage это НЕ картинка, а компонент ее отображающий.
размер именно картинки это:
- Код: Выделить всё
Image1.Picture.Width;
Image1.Picture.Height;
и никакой разницы, как именно она была загружена.
Ustas писал(а): Так вопрос в том: можно их (смасштабированные размеры) получить?
Ustas писал(а):Так вопрос в том: можно их (смасштабированные размеры) получить?
// если задан размер избражение изменяем фон окна
if tmp_Win_Value then
begin
// закрашиваем изображение
tmp_Image.Picture.Bitmap.Canvas.Pen.Style := psSolid;
tmp_Image.Picture.Bitmap.Canvas.Pen.Color := clSkyBlue;
tmp_Image.Picture.Bitmap.Canvas.Brush.Color := clSkyBlue;
tmp_Image.Picture.Bitmap.Canvas.Brush.Style := bsSolid;
tmp_Image.Picture.Bitmap.Canvas.Rectangle
(
0, 0, tmp_Image.Width, tmp_Image.Height
);
// пропорционально вписываем изображение
kw := tmp_bmp.Width / tmp_Image.Width;
kh := tmp_bmp.Height / tmp_Image.Height;
if kw > kh then
begin // если ширина вписывается
W := tmp_Image.Width;
H := (tmp_Image.Height - Round(tmp_bmp.Height / kw)) div 2 ;
tmp_Image.Picture.Bitmap.Canvas.CopyRect
(
Rect(0, H, W, tmp_Image.Height - H),
tmp_bmp.Canvas,
Rect(0, 0, tmp_bmp.Width, tmp_bmp.Height)
);
end
else
begin // если высота вписывается
W := (tmp_Image.Width - Round(tmp_bmp.Width / kh)) div 2;
H := tmp_Image.Height;
tmp_Image.Picture.Bitmap.Canvas.CopyRect
(
Rect(W, 0, tmp_Image.Width - W, H),
tmp_bmp.Canvas,
Rect(0, 0, tmp_bmp.Width, tmp_bmp.Height)
);
end
end;
tmp_bmp: TBitmap; // передается изображение
tmp_Image: : TImage; // на фроме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 244