WinAsm Studio, The Assembly IDE - Free Downloads, Source Code
Sponsors
Articles
Programming Quick Start
32-bit Assembler is Easy
Porting Iczelion tutorials
What is FASM
Hard Drive Recovery
Wiring your own LAN
Personal menu
Welcome Guest
User:
Pass:
Register!
Resend Validation Email
 
Forum
 

FreeImage Library + Convert a BMP to a JPG example, I created this include that exports all the functions and declares most of the constants.

bulk_4me
Quote Post


New Member
*

Group: Members
Posts: 7
Member No.: 150
Joined: 20-June 04


Well I required to convert a BMP to a JPEG tried different approaches and this one actually worked, I'm sure someone may want to use some of the advance features of the library so I created this include that exports all the functions and declares most of the constants may update it with the custom structures in the future.
CODE
.const
; TYPES
FIF_UNKNOWN equ -1
FIF_BMP equ 0
FIF_ICO equ 1
FIF_JPEG equ 2
FIF_JNG equ 3
FIF_KOALA equ 4
FIF_LBM equ 5
FIF_IFF equ FIF_LBM
FIF_MNG equ 6
FIF_PBM equ 7
FIF_PBMRAW equ 8
FIF_PCD equ 9
FIF_PCX equ 10
FIF_PGM equ 11
FIF_PGMRAW equ 12
FIF_PNG equ 13
FIF_PPM equ 14
FIF_PPMRAW equ 15
FIF_RAS equ 16
FIF_TARGA equ 17
FIF_TIFF equ 18
FIF_WBMP equ 19
FIF_PSD equ 20
FIF_CUT equ 21
FIF_XBM equ 22
FIF_XPM equ 23
FIF_DDS equ 24
FIF_GIF     equ 25
FIF_HDR equ 26
FIF_FAXG3 equ 27
FIF_SGI equ 28
FIF_EXR equ 29
FIF_J2K equ 30
FIF_JP2 equ 31

;RESIZE FILTERS
FILTER_BOX equ 0; Box, pulse, Fourier window, 1st order (constant) b-spline
FILTER_BICUBIC equ 1; Mitchell & Netravali's two-param cubic filter
FILTER_BILINEAR  equ 2; Bilinear filter
FILTER_BSPLINE equ 3; 4th order (cubic) b-spline
FILTER_CATMULLROM equ 4; Catmull-Rom spline, Overhauser spline
FILTER_LANCZOS3 equ 5

.data
strFreeImage db 'FreeImage.dll', 0h

.data?
FreeImage dd ?
FreeImage_AcquireMemory dd ?
FreeImage_AdjustBrightness dd ?
FreeImage_AdjustColors dd ?
FreeImage_AdjustContrast dd ?
FreeImage_AdjustCurve dd ?
FreeImage_AdjustGamma dd ?
FreeImage_Allocate dd ?
FreeImage_AllocateT dd ?
FreeImage_AppendPage dd ?
FreeImage_ApplyColorMapping dd ?
FreeImage_ApplyPaletteIndexMapping dd ?
FreeImage_Clone dd ?
FreeImage_CloneTag dd ?
FreeImage_CloseMemory dd ?
FreeImage_CloseMultiBitmap dd ?
FreeImage_ColorQuantize dd ?
FreeImage_ColorQuantizeEx dd ?
FreeImage_Composite dd ?
FreeImage_ConvertFromRawBits dd ?
FreeImage_ConvertLine16To24_555 dd ?
FreeImage_ConvertLine16To24_565 dd ?
FreeImage_ConvertLine16To32_555 dd ?
FreeImage_ConvertLine16To32_565 dd ?
FreeImage_ConvertLine16To4_555 dd ?
FreeImage_ConvertLine16To4_565 dd ?
FreeImage_ConvertLine16To8_555 dd ?
FreeImage_ConvertLine16To8_565 dd ?
FreeImage_ConvertLine16_555_To16_565 dd ?
FreeImage_ConvertLine16_565_To16_555 dd ?
FreeImage_ConvertLine1To16_555 dd ?
FreeImage_ConvertLine1To16_565 dd ?
FreeImage_ConvertLine1To24 dd ?
FreeImage_ConvertLine1To32 dd ?
FreeImage_ConvertLine1To4 dd ?
FreeImage_ConvertLine1To8 dd ?
FreeImage_ConvertLine24To16_555 dd ?
FreeImage_ConvertLine24To16_565 dd ?
FreeImage_ConvertLine24To32 dd ?
FreeImage_ConvertLine24To4 dd ?
FreeImage_ConvertLine24To8 dd ?
FreeImage_ConvertLine32To16_555 dd ?
FreeImage_ConvertLine32To16_565 dd ?
FreeImage_ConvertLine32To24 dd ?
FreeImage_ConvertLine32To4 dd ?
FreeImage_ConvertLine32To8 dd ?
FreeImage_ConvertLine4To16_555 dd ?
FreeImage_ConvertLine4To16_565 dd ?
FreeImage_ConvertLine4To24 dd ?
FreeImage_ConvertLine4To32 dd ?
FreeImage_ConvertLine4To8 dd ?
FreeImage_ConvertLine8To16_555 dd ?
FreeImage_ConvertLine8To16_565 dd ?
FreeImage_ConvertLine8To24 dd ?
FreeImage_ConvertLine8To32 dd ?
FreeImage_ConvertLine8To4 dd ?
FreeImage_ConvertTo16Bits555 dd ?
FreeImage_ConvertTo16Bits565 dd ?
FreeImage_ConvertTo24Bits dd ?
FreeImage_ConvertTo32Bits dd ?
FreeImage_ConvertTo4Bits dd ?
FreeImage_ConvertTo8Bits dd ?
FreeImage_ConvertToGreyscale dd ?
FreeImage_ConvertToRGBF dd ?
FreeImage_ConvertToRawBits dd ?
FreeImage_ConvertToStandardType dd ?
FreeImage_ConvertToType dd ?
FreeImage_Copy dd ?
FreeImage_CreateICCProfile dd ?
FreeImage_CreateTag dd ?
FreeImage_DeInitialise dd ?
FreeImage_DeletePage dd ?
FreeImage_DeleteTag dd ?
FreeImage_DestroyICCProfile dd ?
FreeImage_Dither dd ?
FreeImage_FIFSupportsExportBPP dd ?
FreeImage_FIFSupportsExportType dd ?
FreeImage_FIFSupportsICCProfiles dd ?
FreeImage_FIFSupportsReading dd ?
FreeImage_FIFSupportsWriting dd ?
FreeImage_FindCloseMetadata dd ?
FreeImage_FindFirstMetadata dd ?
FreeImage_FindNextMetadata dd ?
FreeImage_FlipHorizontal dd ?
FreeImage_FlipVertical dd ?
FreeImage_GetAdjustColorsLookupTable dd ?
FreeImage_GetBPP dd ?
FreeImage_GetBackgroundColor dd ?
FreeImage_GetBits dd ?
FreeImage_GetBlueMask dd ?
FreeImage_GetChannel dd ?
FreeImage_GetColorType dd ?
FreeImage_GetColorsUsed dd ?
FreeImage_GetComplexChannel dd ?
FreeImage_GetCopyrightMessage dd ?
FreeImage_GetDIBSize dd ?
FreeImage_GetDotsPerMeterX dd ?
FreeImage_GetDotsPerMeterY dd ?
FreeImage_GetFIFCount dd ?
FreeImage_GetFIFDescription dd ?
FreeImage_GetFIFExtensionList dd ?
FreeImage_GetFIFFromFilename dd ?
FreeImage_GetFIFFromFilenameU dd ?
FreeImage_GetFIFFromFormat dd ?
FreeImage_GetFIFFromMime dd ?
FreeImage_GetFIFMimeType dd ?
FreeImage_GetFIFRegExpr dd ?
FreeImage_GetFileType dd ?
FreeImage_GetFileTypeFromHandle dd ?
FreeImage_GetFileTypeFromMemory dd ?
FreeImage_GetFileTypeU dd ?
FreeImage_GetFormatFromFIF dd ?
FreeImage_GetGreenMask dd ?
FreeImage_GetHeight dd ?
FreeImage_GetHistogram dd ?
FreeImage_GetICCProfile dd ?
FreeImage_GetImageType dd ?
FreeImage_GetInfo dd ?
FreeImage_GetInfoHeader dd ?
FreeImage_GetLine dd ?
FreeImage_GetLockedPageNumbers dd ?
FreeImage_GetMetadata dd ?
FreeImage_GetMetadataCount dd ?
FreeImage_GetPageCount dd ?
FreeImage_GetPalette dd ?
FreeImage_GetPitch dd ?
FreeImage_GetPixelColor dd ?
FreeImage_GetPixelIndex dd ?
FreeImage_GetRedMask dd ?
FreeImage_GetScanLine dd ?
FreeImage_GetTagCount dd ?
FreeImage_GetTagDescription dd ?
FreeImage_GetTagID dd ?
FreeImage_GetTagKey dd ?
FreeImage_GetTagLength dd ?
FreeImage_GetTagType dd ?
FreeImage_GetTagValue dd ?
FreeImage_GetTransparencyCount dd ?
FreeImage_GetTransparencyTable dd ?
FreeImage_GetTransparentIndex dd ?
FreeImage_GetVersion dd ?
FreeImage_GetWidth dd ?
FreeImage_HasBackgroundColor dd ?
FreeImage_Initialise dd ?
FreeImage_InsertPage dd ?
FreeImage_Invert dd ?
FreeImage_IsLittleEndian dd ?
FreeImage_IsPluginEnabled dd ?
FreeImage_IsTransparent dd ?
FreeImage_JPEGCrop dd ?
FreeImage_JPEGTransform dd ?
FreeImage_Load dd ?
FreeImage_LoadFromHandle dd ?
FreeImage_LoadFromMemory dd ?
FreeImage_LoadMultiBitmapFromMemory dd ?
FreeImage_LoadU dd ?
FreeImage_LockPage dd ?
FreeImage_LookupSVGColor dd ?
FreeImage_LookupX11Color dd ?
FreeImage_MakeThumbnail dd ?
FreeImage_MovePage dd ?
FreeImage_MultigridPoissonSolver dd ?
FreeImage_OpenMemory dd ?
FreeImage_OpenMultiBitmap dd ?
FreeImage_OutputMessageProc dd ?
FreeImage_Paste dd ?
FreeImage_PreMultiplyWithAlpha dd ?
FreeImage_ReadMemory dd ?
FreeImage_RegisterExternalPlugin dd ?
FreeImage_RegisterLocalPlugin dd ?
FreeImage_Rescale dd ?
FreeImage_RotateClassic dd ?
FreeImage_RotateEx dd ?
FreeImage_Save dd ?
FreeImage_SaveToHandle dd ?
FreeImage_SaveToMemory dd ?
FreeImage_SaveU dd ?
FreeImage_SeekMemory dd ?
FreeImage_SetBackgroundColor dd ?
FreeImage_SetChannel dd ?
FreeImage_SetComplexChannel dd ?
FreeImage_SetDotsPerMeterX dd ?
FreeImage_SetDotsPerMeterY dd ?
FreeImage_SetMetadata dd ?
FreeImage_SetOutputMessage dd ?
FreeImage_SetOutputMessageStdCall dd ?
FreeImage_SetPixelColor dd ?
FreeImage_SetPixelIndex dd ?
FreeImage_SetPluginEnabled dd ?
FreeImage_SetTagCount dd ?
FreeImage_SetTagDescription dd ?
FreeImage_SetTagID dd ?
FreeImage_SetTagKey dd ?
FreeImage_SetTagLength dd ?
FreeImage_SetTagType dd ?
FreeImage_SetTagValue dd ?
FreeImage_SetTransparencyTable dd ?
FreeImage_SetTransparent dd ?
FreeImage_SetTransparentIndex dd ?
FreeImage_SwapColors dd ?
FreeImage_SwapPaletteIndices dd ?
FreeImage_TagToString dd ?
FreeImage_TellMemory dd ?
FreeImage_Threshold dd ?
FreeImage_TmoDrago03 dd ?
FreeImage_TmoFattal02 dd ?
FreeImage_TmoReinhard05 dd ?
FreeImage_ToneMapping dd ?
FreeImage_Unload dd ?
FreeImage_UnlockPage dd ?
FreeImage_WriteMemory dd ?
FreeImage_ZLibCRC32 dd ?
FreeImage_ZLibCompress dd ?
FreeImage_ZLibGUnzip dd ?
FreeImage_ZLibGZip dd ?
FreeImage_ZLibUncompress dd ?

.code

FreeLibrary_Init proc
push 1
lea eax, FreeImage
push eax

invoke LoadLibrary, addr strFreeImage
mov edx, dword ptr[esp]
add dword ptr[esp], 4
mov [edx], eax

.while dword ptr[esp+4] < 216
 invoke GetProcAddress, FreeImage, dword ptr[esp+4]
 mov edx, dword ptr[esp]
 add dword ptr[esp], 4
 mov [edx], eax
 inc dword ptr[esp+4]
.endw

add esp, 8
ret
FreeLibrary_Init endp

FreeLibrary_Clean proc
invoke FreeLibrary, FreeImage

Ret
FreeLibrary_Clean endp


Example:
CODE
; Convertir el BMP a  JPG
; ----------------------------------------- [START]
push 0
push offset lpFileName
push FIF_BMP
call [FreeImage_Load]

push eax

push FILTER_BOX
push screen_y
push screen_x
push eax
call [FreeImage_Rescale]

push eax

push 80h
push offset lpFileName2
push [esp+8]
push FIF_JPEG
call [FreeImage_Save]

call [FreeImage_Unload]
call [FreeImage_Unload]

; Convertir el objeto en memoria a JPG
; ----------------------------------------- [END]

PMEmail Poster
Top
SeaFarer
Quote Post


Extremely Active Member
******

Group: Members
Posts: 1753
Member No.: 1464
Joined: 2-September 05


Hi Bulk_4me,

Thanks for sharing. But am I missing something? Where can we find the library?

Regards
PM
Top
bulk_4me
Quote Post


New Member
*

Group: Members
Posts: 7
Member No.: 150
Joined: 20-June 04


PMEmail Poster
Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:

Topic Options Reply to this topicStart new topicStart Poll

 

Sponsors
Computer Science

Internet
C/C++
Hardware & PC maintenance

HiEditor

General Discussions
Suggestions/Bug Reports
WinAsm Studio

General Discussions
Suggestions/Bug Reports
WinAsm Studio FAQ
Multilingual User Interface
Add-Ins
Assembly Programming

Main
Newbies
Projects
Custom Controls
Snippets
Announcements & Rules

Announcements

General

Online Degrees - Distance Learning
The Heap
Russian
Google