Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Манипуляции с *.png файлом

11K
11 октября 2007 года
Joe Black
49 / / 29.10.2006
Доброго времени суток.
Помогите пожалуйста, немогу решить две задачи.
1. Отображение *.png рисунка на форме.
(Дано: рисунок находится на C:\\png.png)
2. "Переделывание" *.png в *.bmp посредством C++ Builder 6.0

Нужен рабочий пример решения.

Спасибо.
240
11 октября 2007 года
aks
2.5K / / 14.07.2006
Изучи GDI+
92
11 октября 2007 года
Тень Пса
2.2K / / 19.10.2006
конвертация PNG в TBitmap
Код:
if (OpenDialog1->Execute())
{
   TCHAR filename[MAX_PATH];
   lstrcpyn(filename, OpenDialog1->FileName.c_str(), MAX_PATH);

   // declare and clear the PNGD_P2DINFO structure
   PNGD_P2DINFO png2dib;
   memset(&png2dib, 0, sizeof(PNGD_P2DINFO));
   // initialize the structure size and filename
   png2dib.structsize = sizeof(PNGD_P2DINFO);
   png2dib.pngfn = filename;

   // convert from PNG to DIB
   if (read_png_to_dib(&png2dib) == PNGD_E_SUCCESS)
   {
      Graphics::TBitmap* Bitmap = Image1->Picture->Bitmap;
      Bitmap->Width = png2dib.lpdib->biWidth;
      Bitmap->Height = png2dib.lpdib->biHeight;

      HBITMAP hBmp = Bitmap->ReleaseHandle();
      HDC hDC = Canvas->Handle;
      try
      {
         //
         // TODO: add palette support...
         //
     
         // convert from DIB to TBitmap
         SetDIBits(
            hDC, hBmp, 0,
            png2dib.lpdib->biHeight, png2dib.bits,
            reinterpret_cast<LPBITMAPINFO>(png2dib.lpdib),
            DIB_RGB_COLORS
            );
      }
      catch (...)
      {
         Bitmap->Handle = hBmp;
         GlobalFree(png2dib.lpdib);
      }
      Bitmap->Handle = hBmp;
      GlobalFree(png2dib.lpdib);
   }
}
вот из FAQ по BuilderC++

http://softd.org/download/bcbfaq.zip ~9 Мб.
11K
12 октября 2007 года
Joe Black
49 / / 29.10.2006
ругается на строчке
 
Код:
PNGD_P2DINFO png2dib;

говорит, что
Цитата:
[C++ Error] Unit1.cpp(26): E2451 Undefined symbol 'PNGD_P2DINFO'

11K
12 октября 2007 года
Joe Black
49 / / 29.10.2006
С сайта скачал http://entropymine.com/jason/pngdib/ и подгрузил следующее

 
Код:
#include <windows.h>
#include <commdlg.h>
#include <stdio.h>
#include "resource.h"
#include <pngdib.h>

как было указано в примере...
ругается на строчке
 
Код:
png2dib.lpdib->biHeight, png2dib.bits,

говорит
Цитата:
[C++ Error] Unit1.cpp(57): E2316 'bits' is not a member of 'PNGD_P2DINFO_struct'

11K
12 октября 2007 года
Joe Black
49 / / 29.10.2006
Думаю что-то подгрузил неверно..
В архиве лежит 2 папки
1. bmp2png в ней bmp2png.c и bmp2png.dsp
2. png2bmp в ней png2bmp.c и png2bmp.dsp
Подскажите куда эти файлы кидать в билдер?

[SIZE="1"]...сори, что я ламер...[/SIZE]
92
15 октября 2007 года
Тень Пса
2.2K / / 19.10.2006
http://svn.abisource.com/abiword-plugins/trunk/tools/abipaint/win/

скачай, собери и посмотри как сделано )

в принципе, от того же Jason'а... не знаю что и на что там может ругаться =)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог