an update for image::open method : loading icon memory data
This commit is contained in:
parent
a591735a2a
commit
e7620ecaeb
@ -100,7 +100,8 @@ namespace paint
|
|||||||
{
|
{
|
||||||
close();
|
close();
|
||||||
#if defined(NANA_WINDOWS)
|
#if defined(NANA_WINDOWS)
|
||||||
HICON handle = ::CreateIconFromResource((PBYTE)data, static_cast<DWORD>(bytes), TRUE, 0x00030000);
|
// use actual resource size, stopped using CreateIconFromResource since it loads blurry image
|
||||||
|
HICON handle = ::CreateIconFromResourceEx((PBYTE)data, static_cast<DWORD>(bytes), TRUE, 0x00030000, 0, 0, LR_DEFAULTCOLOR);
|
||||||
if(handle)
|
if(handle)
|
||||||
{
|
{
|
||||||
ICONINFO info;
|
ICONINFO info;
|
||||||
@ -357,6 +358,10 @@ namespace paint
|
|||||||
else if (bytes > 9 && (0x66697845 == *reinterpret_cast<const unsigned*>(reinterpret_cast<const char*>(data)+5))) //Exif
|
else if (bytes > 9 && (0x66697845 == *reinterpret_cast<const unsigned*>(reinterpret_cast<const char*>(data)+5))) //Exif
|
||||||
ptr = std::make_shared<detail::image_jpeg>();
|
ptr = std::make_shared<detail::image_jpeg>();
|
||||||
#endif
|
#endif
|
||||||
|
// suppose icon data is bitmap data
|
||||||
|
if (!ptr && bytes > 40 /* sizeof(BITMAPINFOHEADER) */ && (40 == *reinterpret_cast<const uint32_t*>(data))) {
|
||||||
|
ptr = std::make_shared<detail::image_ico>(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user