Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Gdiplus


Автор: User008 18.2.2010, 01:22
Создаю объекты
Gdiplus::Bitmap bmp(L"C:/0.bmp");
Gdiplus::Image jpg(L"C:/0.jpg");

А объекты создаются пустыми, судя по GetWidth и GetHeight равным нулю. В чём причина и как исправить?

Добавлено через 11 минут и 6 секунд
И как обратиться к конкретному пикселю, что-то не нахожу подходящего метода.

Автор: Andrey44 18.2.2010, 06:19
Инициализация GDI+ сделана?
Код

#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

INT main()
{
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

   Image* image = Image::FromFile(L"FakePhoto.jpg");
   printf("The width of the image is %u.\n", image->GetWidth());
   printf("The height of the image is %u.\n", image->GetHeight()); 

   delete image;
   GdiplusShutdown(gdiplusToken);
   return 0;
}

Автор: Dem_max 18.2.2010, 15:15
И вообще должно быть так "C:\0.bmp" а не так "C:/0.bmp"

Автор: Andrey44 18.2.2010, 15:58
Цитата(Dem_max @  18.2.2010,  15:15 Найти цитируемый пост)
И вообще должно быть так "C:\0.bmp" а не так "C:/0.bmp" 
И вообще должно быть так "C:\\0.bmp" а не так "C:\0.bmp" 

Автор: User008 18.2.2010, 23:43
Спасибо, а чем \\ лучше, чем / ?

Добавлено через 13 минут и 53 секунды
и как получить значение пикселя?

Автор: Andrey44 19.2.2010, 08:18
Цитата(User008 @  18.2.2010,  23:43 Найти цитируемый пост)
и как получить значение пикселя? 

Код

Gdiplus::Bitmap bmp(L"C:\\0.bmp");
Gdiplus::Image jpg(L"C:\\0.jpg");
Gdiplus::Color clr;
bmp.GetPixel(100, 100, &clr);
Gdiplus::Bitmap *bmp1 = reinterpret_cast<Gdiplus::Bitmap*>(&jpg);
bmp1->GetPixel(100, 100, &clr);



Цитата(User008 @  18.2.2010,  23:43 Найти цитируемый пост)
Спасибо, а чем \\ лучше, чем / ?
http://lmgtfy.com/?q=backslash

Автор: Alca 19.2.2010, 10:26
Цитата

Спасибо, а чем \\ лучше, чем / ?


Цитата

here

Винда сама разрулит

Автор: User008 19.2.2010, 16:34
Цитата(Andrey44 @  19.2.2010,  08:18 Найти цитируемый пост)
Gdiplus::Bitmap bmp(L"C:\\0.bmp");Gdiplus::Image jpg(L"C:\\0.jpg");Gdiplus::Color clr;bmp.GetPixel(100, 100, &clr);Gdiplus::Bitmap *bmp1 = reinterpret_cast<Gdiplus::Bitmap*>(&jpg);bmp1->GetPixel(100, 100, &clr);

Спасибо


Цитата(Andrey44 @  19.2.2010,  08:18 Найти цитируемый пост)
http://lmgtfy.com/?q=backslash

Что такое backslash, я представляю. Но вопрос в другом. Чем \\ лучше, чем / ? Разницу в выполнении кода с "C:\\" и "C:/" я не чувствую.

И ещё такой вопрос. Gdiplus, если не ошибаюсь виндовская библиотека, а что будет наиболее подходящим для чтения картинок, независимо от платформы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)