• 0
BenTen

Как нарисовать круглый TImage

Вопрос

Как лучше реализовать круглое изображение на базе Timage, наподобие того, как нарисованы аватары на этом форуме, если изначально изображение имеет прямоугольную форму.

Пробовал сделать Timage дочерним по отношению к TCircle и установить

Сircle.ClipChildren = True;

Не помогает, поскольку область TCircle тоже прямоугольная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 ответов на этот вопрос

  • 0

Сверху Image ставит еще один Image с изображением края четырехугольника центр которого прозрачен в виде круга...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Как-то сложновато, хочется попроще и поизящней решение.

Вариант изящный, но пока не понятно, он только с TPath работает или с TCircle тоже будет работать?

Вечером проверю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

а чем вас не устраивает ellipse в свойстве fill можно выбрать изображение и растянуть  (streach)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

с TCircle тоже будет работать?

 

Будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
var
  BmpNew     : TBitmap;
begin
    BmpNew := TBitmap.Create;
    BmpNew.SetSize({нужный размер}, {нужный размер});
    BmpNew.Canvas.BeginScene;
    try
      BmpNew.Canvas.Fill.Kind := TBrushKind.Bitmap;
      BmpNew.Canvas.Fill.Bitmap.WrapMode := TWrapMode.TileStretch;
      BmpNew.Canvas.Fill.Bitmap.Bitmap := {ваш битмап};
      BmpNew.Canvas.Clear(0);
      BmpNew.Canvas.FillEllipse(RectF(0, 0, {нужный размер}, {нужный размер}), 1);
    finally
      BmpNew.Canvas.EndScene;
    end;

    TImage{ваш объект}.Bitmap.Assign(BmpNew);
end;

думаю так

enatechno, sulion, BenTen и 2 другим понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

я через TCircle делал, просто и удобно вроде

Я тоже. Просто вопрос стоял "Как лучше реализовать круглое изображение на базе Timage...".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Алекс если не секрет, в вашем проекте вы какой метод используете?

 

 

Я там видел вы нарезаете в ImageList кругляшки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

[rustam_d] В десктопной версии - TCircle, в мобильной - TImage (для ListViewItem) и TCircle (для остального).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу