code_junkie

Convert bitmap to PNG in-memory in C++ (win32)

Nov 12th, 2011
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. CByteArray baPicture;
  2. IStream *pStream = NULL;
  3. if (CreateStreamOnHGlobal(NULL, TRUE, &pStream) == S_OK)
  4. {
  5. if (image.Save(pStream, Gdiplus::ImageFormatPNG) == S_OK)
  6. {
  7. ULARGE_INTEGER ulnSize;
  8. LARGE_INTEGER lnOffset;
  9. lnOffset.QuadPart = 0;
  10. if (pStream->Seek(lnOffset, STREAM_SEEK_END, &ulnSize) == S_OK)
  11. {
  12. if (pStream->Seek(lnOffset, STREAM_SEEK_SET, NULL) == S_OK)
  13. {
  14. baPicture.SetSize(ulnSize.QuadPart);
  15. ULONG ulBytesRead;
  16. pStream->Read(baPicture.GetData(), ulnSize.QuadPart, &ulBytesRead);
  17. }
  18. }
  19. }
  20. }
  21. pStream->Release();
Add Comment
Please, Sign In to add comment