Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2011, 06:25   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию Прозрачная надпись в TBitmap

Здравствуйте.
Пробовал сделать след. образом
Код:
procedure TFormCompreesForm.btn1Click(Sender: TObject);
var
        bmp:TBItmap;
        OldBkMode : integer;
begin
         bmp:=TBitmap.create;
         bmp.Width:=imgEdit.Picture.Width;
         bmp.Height:=imgEdit.Picture.Height;
         bmp.Canvas.StretchDraw( bmp.Canvas.Cliprect, imgEdit.Picture.Graphic );

         bmp.Canvas.Font.Color := clBlue;
         bmp.Canvas.Font.Size:=40;
        OldBkMode := SetBkMode(bmp.Canvas.Handle,TRANSPARENT);

        bmp.Canvas.TextOut(100, 100, 'hellow');
        SetBkMode(bmp.canvas.handle,transparent);
        SetBkMode(bmp.Canvas.Handle,OldBkMode);
        imgEdit.Picture.Bitmap:=bmp;
но надпись получается не прозрачная
Lokos вне форума Ответить с цитированием
Старый 04.07.2011, 07:53   #2
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

извиняюсь нужна прозрачная кисть чтоб через надпись было видно картинку
если точней необходимо сделать textout со свойством AlphaBlend но у canvas'a такого свойства нету какой есть выход.

Последний раз редактировалось Lokos; 04.07.2011 в 08:41.
Lokos вне форума Ответить с цитированием
Старый 07.07.2011, 23:45   #3
antonn
Пользователь
 
Регистрация: 17.05.2011
Сообщений: 24
По умолчанию

http://forum.sources.ru/index.php?showtopic=332418
antonn вне форума Ответить с цитированием
Старый 22.07.2011, 21:34   #4
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Через надпись будет видно картинку, сразу надпись выводит в Image на картинку.

Попробуй так, простой вариант
Код:
  
procedure TFormCompreesForm.btn1Click(Sender: TObject);
begin
   imgEdit.Canvas.Font.Color := clBlue;
   imgEdit.Canvas.Font.Size:=40;
   SetBkMode(imgEdit.Canvas.Handle, TRANSPARENT);
   imgEdit.Canvas.TextOut(100, 100, 'hellow');
Либо так, шрифт красивый будет и сглажен, меняя значения CreateFont можно текст под наклоном сделать, подробнее о значениях CreateFont в интернете читайте.
Код:
procedure TFormCompreesForm.btn1Click(Sender: TObject);
var
iFont: hFont;
begin
  iFont := CreateFont(40, 40, 0, 0, 1000, 0, 0, 0,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
  CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH or FF_DONTCARE, 'Courier New' );
  SelectObject(imgEdit.Canvas.Handle, iFont);
  SetBkMode(imgEdit.Canvas.Handle, TRANSPARENT);
  SetTextColor(imgEdit.Canvas.Handle, clBlue);
   imgEdit.Canvas.TextOut(100, 100, 'hellow');
   DeleteObject(iFont);

Последний раз редактировалось Aliens_wolfs; 23.07.2011 в 16:33.
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.07.2011, 15:57   #5
antonn
Пользователь
 
Регистрация: 17.05.2011
Сообщений: 24
По умолчанию

Цитата:
Через надпись будет видно картинку, сразу надпись выводит в Image на картинку.
ему и надо чтобы через буквы картинка была видна
antonn вне форума Ответить с цитированием
Старый 24.07.2011, 17:07   #6
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Для прозрачного текста надо установить:
Код:
  bmp.Canvas.Brush.Style := bsClear;
  bmp.Canvas.TextOut(10,20,'Текст');
ну и для примера код. В Image1 уже есть изображение, на которое надо нанести текст
Код:
procedure TForm3.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  bmp.Assign(Image1.Picture);
  bmp.Canvas.Brush.Style := bsClear;
  bmp.Canvas.TextOut(10, 20, 'Текст');
  Image1.Picture.Assign(bmp);
  bmp.Free;
end;
kangreon вне форума Ответить с цитированием
Старый 24.07.2011, 18:18   #7
antonn
Пользователь
 
Регистрация: 17.05.2011
Сообщений: 24
По умолчанию

Цитата:
Для прозрачного текста надо установить:
для прозрачного фона текста, но не самого текста.
вы сообщения выше читаете?
antonn вне форума Ответить с цитированием
Старый 24.07.2011, 18:48   #8
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Чем проще тем лучше.
Зачем использовать лишнее)))
выберите нужное

Последний раз редактировалось Aliens_wolfs; 24.07.2011 в 20:01.
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.07.2011, 21:19   #9
antonn
Пользователь
 
Регистрация: 17.05.2011
Сообщений: 24
По умолчанию

у меня в примере, кстати, шрифт тоже сглажен, плюс полупрозрачен
antonn вне форума Ответить с цитированием
Старый 24.07.2011, 21:39   #10
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Если бы у меня не был бы прозрачен текст я не предлогал бы))))
Пусть сам решит что ему нужно.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прозрачная кнопка Марк Охман Общие вопросы Delphi 4 08.12.2010 12:33
Прозрачная текстура Miha85193 Компоненты Delphi 0 29.03.2010 12:34
Прозрачная кнопка aleksandr278 Общие вопросы Delphi 4 17.03.2010 02:11
Прозрачная панель Vladya Компоненты Delphi 5 14.05.2009 12:34