gdi+

Тема в разделе "WASM.BEGINNERS", создана пользователем 2FED, 10 май 2009.

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Собсно есть код

    Код (Text):
    1. WinMain     proc    hInst:DWORD,hPrevInst:DWORD,CmdLine:DWORD,CmdShow:DWORD
    2.         local gdisi:GdiplusStartupInput
    3. ;       local gdiso:GdiplusStartupOutput
    4.         local gifimage:dword
    5.         local encnum:dword
    6.         local encsize:dword
    7.         local encinfo:dword
    8.        
    9.         mov gdisi.GdiplusVersion, 1
    10.         and gdisi.DebugEventCallback, 0
    11.         and gdisi.SuppressBackgroundThread, 0
    12.         and gdisi.SuppressExternalCodecs, 0
    13.         int 3
    14.         invoke GdiplusStartup, addr gditoken, addr gdisi, 0 ;addr gdiso
    15.         .data
    16.             bmpopen     dw 'S','a','m','p','l','e','.','b','m','p',0
    17.             gifsave     dw 'R','e','s','u','l','t','.','g','i','f',0
    18.             mime_type   dw 'i', 'm', 'a', 'g', 'e', '/', 'g', 'i', 'f', 0
    19.         .code
    20.         invoke GdipLoadImageFromFile, addr bmpopen, addr gifimage
    21.         invoke GdipGetImageEncodersSize, addr encnum, addr encsize
    22.         invoke VirtualAlloc, 0, encsize, MEM_COMMIT, PAGE_READWRITE
    23.         mov encinfo, eax
    24.         invoke GdipGetImageEncoders, encnum, encsize, encinfo
    25.        
    26.         mov ebx, encinfo
    27.     @@: mov eax, [ebx.ImageCodecInfo.MimeType]
    28.         add ebx, sizeof ImageCodecInfo
    29.         invoke lstrcmpW, eax, addr mime_type
    30.         test eax, eax
    31.         jz @F
    32.         dec encnum
    33.         jnz @B
    34.     @@: sub ebx, sizeof ImageCodecInfo
    35.        
    36.         invoke GdipSaveImageToFile, gifimage, addr gifsave, ebx, 0
    37.         invoke VirtualFree, encinfo, 0, MEM_RELEASE
    38.         invoke GdipDisposeImage, gifimage
    39.         invoke GdiplusShutdown, gditoken
    40.         xor eax,eax
    41.         ret
    42. WinMain     endp
    Берёт битмап картинку и сохраняет её в гифе.

    А можно ли сделать всё в памяти, без сохранения на диск и загрузки?

    есть функции
    GdipSaveImageToStream
    GdipLoadImageFromStream

    но чото их описания нету в мсдн.
     
  2. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    стало быть недок)
     
  3. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    hxxp://msdn.microsoft.com/en-us/library/ms534041(VS.85).aspx