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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2014, 11:20   #1
crash_8675
Новичок
Джуниор
 
Регистрация: 06.01.2014
Сообщений: 2
По умолчанию Delphi 7 - PNG Image isn't showing

I am using Delphi 7 Pro. I have installed the PNG Component in my project, but whenever I load a PNG image into the Image1 component, the application starts but its main form is invisible. If I load a JPEG or a bitmap file, the form is shown. Here's the code I'm using in my form constructor:

Код:
procedure TFMain.FormCreate(Sender: TObject);
var
  regn, tmpRegn, x, y: integer;
  nullClr: TColor;
  Settings: TInifile;
begin
  FMain.Brush.Bitmap := Image1.Picture.Bitmap;
  nullClr := Image1.Picture.Bitmap.Canvas.Pixels[0, 0];
  regn := CreateRectRgn(0, 0, Image1.Picture.Graphic.Width,
    Image1.Picture.Graphic.Height);
  for x := 1 to Image1.Picture.Graphic.Width do
    for y := 1 to Image1.Picture.Graphic.Height do
      if Image1.Picture.Bitmap.Canvas.Pixels[x - 1, y - 1] = nullClr then
      begin
        tmpRegn := CreateRectRgn(x - 1, y - 1, x, y);
        CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
        DeleteObject(tmpRegn);
      end;
  SetWindowRgn(FMain.Handle, regn, True);
end;

Why is this happening ? What should I change so I can use PNG image in my Image1 ?
crash_8675 вне форума Ответить с цитированием
Старый 07.02.2014, 12:17   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Try to resave your png file, and change pixelformat := pf24bit;

Последний раз редактировалось ZuBy; 07.02.2014 в 12:59.
ZuBy вне форума Ответить с цитированием
Старый 08.02.2014, 06:03   #3
crash_8675
Новичок
Джуниор
 
Регистрация: 06.01.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Try to resave your png file, and change pixelformat := pf24bit;
Hello thank you very much for your answer, I tried what you suggested but not working.
crash_8675 вне форума Ответить с цитированием
Старый 08.02.2014, 06:59   #4
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

some like this
Код:
uses
  pngimage;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  a,d:pByteArray;
  png1,png2:TPNGObject;
  arect:TREct;
  i,j:Integer;
begin
  png1:=TPngObject.Create;
  png1.LoadFromFile('2.png');      { COLOR_RGBALPHA }
  png2:=TPngObject.createblank(COLOR_GRAYSCALEALPHA, 16, png1.Width, png1.Height);
  arect:=Rect(0,0,png1.width, png1.height);
  for i:=0 to png1.height-1 do
  begin
    a:=png1.AlphaScanline[i];
    for j:=0 to png1.width-1 do
    begin
      d:=png2.AlphaScanline[i];
      if a=nil then d[j]:=255
      else
      d[j]:=a[j];
    end;
  end;
  png2.Canvas.CopyRect(arect, png1.Canvas, arect);
  Image1.Picture.Bitmap.Assign(png2);
end;
Вложения
Тип файла: rar png_test.rar (350.8 Кб, 20 просмотров)
пыжок

Последний раз редактировалось maloun; 08.02.2014 в 13:32.
maloun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отразить PNG Image postal2 Мультимедиа в Delphi 7 16.01.2012 17:03
EPNGMissingMultipleIDAT. This PNG Image is invalid because it has missing image parts kardinal94 Общие вопросы Delphi 0 08.10.2010 20:31
image на png dmitriegorovih Мультимедиа в Delphi 8 20.07.2010 16:31
PNG+Image+GetRValue=Ошибка Levsha100 Мультимедиа в Delphi 4 24.04.2009 23:20
PNG в Image Grey Fox Помощь студентам 1 02.08.2007 12:24