11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
1

Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым

05.01.2023, 11:16. Показов 1818. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым.
Проперти Transparent не вижу.
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2023, 11:16
Ответы с готовыми решениями:

Не отображается прозрачный фон png рисунка в ие 6
Всем привет. Мне нужно вставить png(gif не катит) с прозрачным фоном в html, а у шефа как на зло...

Прозрачный фон в png - как сделать?
Добавил в фон прозрачное изображение png. Но в готовом состоянии на сайте оно не прозрачное. Как...

Можно ли сделать фон Image белым, а не прозрачным?
У меня есть программа, которая постепенно заполняет DrawingGroup, потом из него создаёт...

Сделать прозрачный фон у png
Здравствуйте. Имею код: QPainter painter; painter.begin(&printer); QImage...

31
5783 / 4525 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
06.01.2023, 20:19 2
использовать TImage

Добавлено через 3 минуты
если это игра, то желательно не делать так вообще а рисовать самому. на Paintbox

в данном случае например, вы заделали целый компонент (а у него еще много всяких штук с перерисовками) чтобы избежать вызова всего одного метода:
Delphi
1
canvas.DrawBitmap(bitmap, SrcRect, DstRect, 1);
1
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
06.01.2023, 21:50  [ТС] 3
krapotkin, я не использовал TImage, так, как у него нет свойства Bitmap. Наверное можно файл.png через файловый диалог отправить компоненту TImage?

В данном случае "canvas" - это имя компонента TImage?
0
Модератор
3628 / 2149 / 759
Регистрация: 15.11.2015
Сообщений: 8,629
06.01.2023, 22:49 4
terra nova, куда делся Bitmap у Image?
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
07.01.2023, 12:38  [ТС] 5
AzAtom, сам не знаю.Уже думаю попробовать на Delphi 11 установить RxGifAnimator от Delphi 7. Может там можно будет простым способом загрузить изображение с прозрачным фоном.
Прилагаю скриншот.

Как загрузить изображение в TImage?
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
07.01.2023, 12:43  [ТС] 6
Нашёл! MultiResBitmap расположен не в меню Property, а в Structure!

Еще бы звук добавить. Как это сделать?
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
5783 / 4525 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
07.01.2023, 13:16 7
точно?
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
5783 / 4525 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
07.01.2023, 13:18 8
звук добавить несколько сложнее
обычно все пользуются библиотекой BASS
на базе bass.dll
например https://github.com/HemulGM/FMXAudio
1
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
07.01.2023, 13:44  [ТС] 9
krapotkin, Да, в меню запрятано.
Спасибо, сейчас почитаю, но хотелось бы без регистрации dll и других танцев с бубном проигрывать звук.
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
08.01.2023, 09:21  [ТС] 10
krapotkin, Очень странное исключение выскакивает. У меня все переменные в этом диапазоне, а вылетает "scroll value must be between 0 and 100". В чем может быть дело?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
   i,j,k:integer;
 
procedure THeaderFooterwithNavigation.Button1Click(Sender: TObject);
begin
  j:=1;
  i:=1;
  k:=1;
end;
 
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
  begin
 if i=1 then  Image2.MultiResBitmap.Bitmaps[0]:=Image2.MultiResBitmap.Bitmaps[1];
 if i=2 then  Image2.MultiResBitmap.Bitmaps[0]:=Image2.MultiResBitmap.Bitmaps[2];
 i:=i+i;
 if i=3 then i:=1;
 
end;
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
08.01.2023, 11:36  [ТС] 11
Переделал, но пропала анимация привязанная к таймеру. Сразу отображается последний битмэп. В чем может быть ошибка?

Значение от 1 до 3 меняется десять раз в секунду, а изображение не меняется. Замерло на Image2.MultiResBitmap[2].Bitmap
Delphi
1
2
3
4
5
6
7
8
9
10
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
  begin
  case i of
   1: Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[1].Bitmap;
   2: Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[2].Bitmap;
   else i:=0
   end;
  if j=1 then i:=i+1;
  Edit1.Text:=IntToStr(i);
end;
0
Модератор
3628 / 2149 / 759
Регистрация: 15.11.2015
Сообщений: 8,629
08.01.2023, 11:44 12
Цитата Сообщение от terra nova Посмотреть сообщение
Замерло на Image2.MultiResBitmap[2].Bitmap
А j чему равно?
Delphi
1
if j=1 then i:=i+1;

Не понятно, зачем тут case? Так можно зациклить от 1 до 2:
Delphi
1
2
3
4
5
6
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
begin
  Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[i].Bitmap;
  i := i mod 2 + 1;
  Edit1.Text:=IntToStr(i);
end;
И так тоже можно переключать между 1 и 2:
Delphi
1
  i := 3 - i;
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
08.01.2023, 11:47  [ТС] 13
Значение меняется от 0 до 2 по таймеру, а изображение не меняется. Всё время отображается только Image2.MultiResBitmap[2].Bitmap;
В чем может быть ошибка?
Delphi
1
2
3
4
5
6
7
8
9
10
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
  begin
  case i of
   1: Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[1].Bitmap;
   2: Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[2].Bitmap;
   else i:=0
   end;
  Edit1.Text:=IntToStr(i);
  if j=1 then i:=i+1;
  end;
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
08.01.2023, 12:05  [ТС] 14
AzAtom, После клика по кнопке j:=1 и эт значение не меняется. Если j=1 запускается анимация стрельбы. Только изображения не меняются.
На первом скриншоте значения до клика по Button1. на втором скриншоте после клика.

Листинг:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
unit HeaderFooterFormwithNavigation;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Graphics, FMX.Forms, FMX.Dialogs, FMX.TabControl, System.Actions, FMX.ActnList,
  FMX.Objects, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Edit;
 
type
  THeaderFooterwithNavigation = class(TForm)
    ActionList1: TActionList;
    PreviousTabAction1: TPreviousTabAction;
    TitleAction: TControlAction;
    NextTabAction1: TNextTabAction;
    TopToolBar: TToolBar;
    btnBack: TSpeedButton;
    ToolBarLabel: TLabel;
    btnNext: TSpeedButton;
    TabControl1: TTabControl;
    TabItem1: TTabItem;
    TabItem2: TTabItem;
    BottomToolBar: TToolBar;
    Button1: TButton;
    Timer1: TTimer;
    Image1: TImage;
    Image2: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure TitleActionUpdate(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  HeaderFooterwithNavigation: THeaderFooterwithNavigation;
   i,j,k:integer;
implementation
 
{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}
{$R *.iPhone4in.fmx IOS}
 
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
  begin
  case i of
   1: Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[1].Bitmap;
   2: Image2.MultiResBitmap[0].Bitmap:=Image2.MultiResBitmap[2].Bitmap;
   else i:=0
   end;
  Edit1.Text:='i='+IntToStr(i);
  Edit2.Text:='j='+IntToStr(j);
  if j=1 then i:=i+1;
  end;
 
procedure THeaderFooterwithNavigation.TitleActionUpdate(Sender: TObject);
begin
  if Sender is TCustomAction then
  begin
    if TabControl1.ActiveTab <> nil then
      TCustomAction(Sender).Text := TabControl1.ActiveTab.Text
    else
      TCustomAction(Sender).Text := '';
  end;
end;
 
procedure THeaderFooterwithNavigation.Button1Click(Sender: TObject);
begin
  j:=1;
  i:=1;
  k:=1;
end;
 
procedure THeaderFooterwithNavigation.FormCreate(Sender: TObject);
begin
  { This defines the default active tab at runtime }
  TabControl1.First(TTabTransition.None);
end;
 
procedure THeaderFooterwithNavigation.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  if (Key = vkHardwareBack) and (TabControl1.TabIndex <> 0) then
  begin
    TabControl1.First;
    Key := 0;
  end;
end;
 
end.
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым   Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
08.01.2023, 12:08  [ТС] 15
Изображения я загрузил разные. Я проверил. Вот скриншоты
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым   Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
5783 / 4525 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
08.01.2023, 18:39 16
без кода ответов скорее всего не будет )
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
09.01.2023, 07:21  [ТС] 17
krapotkin, полный листинг двумя собщеними выше.
Раз нельзя в бесконечном цикле менять Bitmaps, я поставлю два TImage и буду отключать у них по очереди видимость

Добавлено через 14 минут
AzAtom, Я скачал анимацию из четырех спрайтов. Это временно у меня анимация из двух. Поэтому оператор mod в будущем не подойдет
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
09.01.2023, 07:28  [ТС] 18
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
  begin
    case i of
       1: begin Image3.Visible:=True; Image4.Visible:=False; end;
       2: begin Image4.Visible:=True; Image3.Visible:=False; end;
       else i:=0
    end;
    if j=1 then i:=i+1;
 
    Edit1.Text:='i='+IntToStr(i);
    Edit2.Text:='j='+IntToStr(j);
 
  end;
Появлися странный глюк. Оба TImage находятся на X:=24
Однако в момент смены видимости. Один из TImage видно что смещен на X:=74
На скриншоте я один TImage приподнял вверх для наглядности.
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
09.01.2023, 07:31  [ТС] 19
Видимо изображение с онем из ствола автомата нужно вывести за зону видимости. Например X:=-100; Y:=-100;
И в момент стрельбы менять координаты двух изображений. Один отправлять за пределы экрана, а второй ставить в место выстрела.
0
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
09.01.2023, 08:17  [ТС] 20
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure THeaderFooterwithNavigation.Timer1Timer(Sender: TObject);
  begin
    case i of
       1: begin Image3.Position.X:=-100; Image4.Position.X:=24; end;
       2: begin Image4.Position.X:=-100; Image3.Position.X:=24; end;
       else i:=0
    end;
    if j=1 then i:=i+1;
 
    Edit1.Text:='i='+IntToStr(i);
    Edit2.Text:='j='+IntToStr(j);
 
  end;
Так тоже не помоло. Два изображения на близких координатах почему-то не могут находится. Наверное криво добавил в Structure. Сейчас сделал так как на скриншоте ниже
Миниатюры
Как сделать в ImageControl прозрачный фон? Загрузил png с прозрачным фоном, но фон отображается белым  
0
09.01.2023, 08:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2023, 08:17
Помогаю со студенческими работами здесь

Можно ли сделать Edit с прозрачным фоном или изменить фон на картинку?
Можно ли сделать Edit с прозрачным фоном или изменить фон на картинку? Или может есть какой-нибудь...

png формат в IE не отображается с прозрачным фоном
Гружу *.png рисунок с надписью и прозрачным фоном. В Opera и Mozilla отображеится все хорошо, а в...

PNG фон серый, а не прозрачный
Новичок JavaFx, при помещении PNG изображения c прозрачным фоном в ImageView он отображается как...

Не удаляется прозрачный фон у png
html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, blockquote, pre, form,...

Events картинки - png, прозрачный фон
Я только знакомлюсь с делфи, и прошу писать ответы подробнее, а то как всегда ничего не пойму. У...

Правльный прозрачный фон PNG (PHP GD)
Всем привет! Есть образная упрощенная задача: составить картинку из 2 &quot;плюсов&quot; и 1 &quot;круга&quot;....

По умолчанию меню тулбара является прозрачным и сливается с фоном, как изменить фон текста меню?
Здравствуйте уважаемые форумчане! Возникла следующая проблема, я использую для создания меню в xml...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru