-
Ganda (19.05.08 16:09) [0]Есть отчет созданный на FastReport-е 3.0. Динамично загружаю изображение у него!! В нём подпись и вокруг этой подписи всё белое! Хотелось узнать как можно избавится от белого фона и сделать его прозрачным? Т.е. что было видно тока подпись
загружаю так изображение
TfrxPictureView(FindObject('Picture2')).Picture.LoadFromFile('123.bmp'); -
справку по свойству Transparent у TBitmap смотрите.
-
Ganda (20.05.08 07:26) [2]TfrxPictureView(FindObject('Picture3')).Picture.Bitmap.LoadFromFile('123.bmp');
TfrxPictureView(FindObject('Picture3')).Picture.Bitmap.TransparentColor:= clWhite;
TfrxPictureView(FindObject('Picture3')).Picture.Bitmap.Transparent:= True;
где то так Я делал! -
Ganda (20.05.08 08:48) [3]Результат тот же!! Когда грузишь изображение и выводишь на экран с помощью канвы все замечательно работает!!
-
ЮЮ © (20.05.08 09:18) [4]> нём подпись и вокруг этой подписи всё белое! Хотелось узнать
> как можно избавится от белого фона и сделать его прозрачным
Неужели белое так видно на бумаге?
З.Ы. Почему бы эту надпись просто не вывести в FastReport-е? Зачем посредник в виде '123.bmp' ?
> где то так Я делал!
Всё это делать надо не для TfrxPictureView.Picture.Bitmap, для TfrxPictureView -
Ganda (20.05.08 09:29) [5]на заднем фоне стоит голубой фон
а для TfrxPictureView нету таких свойств TransparentColor, Transparent ((( -
> TfrxPictureView(FindObject('Picture3')).Picture.Bitmap.
> TransparentColor:= clWhite;
Ты уверен что там действительно White??? Может там куча других цветов?
Да и вообще, что мешает взять фотошоп сделать подпись на голубом фоне? -
ЮЮ © (20.05.08 09:53) [7]> на заднем фоне стоит голубой фон
тогда и '123.bmp' надписи следует писать на голубом фоне, коль TfrxPictureView не поддерживает Transparent (а именно так следует понимать отсутствие у него свойства Transparent).
З.Ы. FastReport-ом не обладаю, так что действенных способов по реальной прозрачности предложить не могу. -
Ganda (20.05.08 09:55) [8]да уверен что именно белый цвет иначе бы не работал следующий код
with Form1 do
begin
BS.LoadFromFile('sb.bmp');
BS.Transparent:= True;
BS.TransparentColor:= clWhite;
Canvas.Draw(1, 2, BS);
end;
а фотошоп не выход!! Программа будет рабоать там где меня нету и никогда не будет!! -
> а фотошоп не выход!! Программа будет рабоать там где меня
> нету и никогда не будет!!
И что там будет меняться фон??? Или кто-то будет его менять?
Вообще я посмотрел описание класса TfrPictureView так вот там есть метод
Draw.
Можно в принципе попробовать создать наследникаTfrMyPictureView = class(TfrPictureView)
public
procedure Draw(Canvas: TCanvas); override;
end;
Динамически добавить его экземпляр на страницу отчета.
Ну и соотвественно реализовать метод уже по своему. -
Ganda (20.05.08 14:52) [10]Да уж выход найден буду писать на канве!! Да здраствует быстродействие и низкийуровень программирования )) Всем спасибо з ответы и за время которое отнял у вас!!