asp.net mvc generate pdf : Conversion of pdf to jpg Library application component .net windows asp.net mvc FreeImage313111-part7

FIBITMAP *dst = FreeImage_RotateEx(src, 15, 0, 0, 0, 0, TRUE); 
FreeImage 3.13.1 documentation
Bitmap function reference    103
Error processing SSI file
FreeImage metadata models
FIMD_COMMENTS
This model is used to store image comments or image keywords. 
The JPEG format supports a single user comment string, which can be set using the 
Comment” tag field name. 
The PNG format supports as many comments as you want, using any keyword as the tag field 
name. Each keyword is saved and loaded together with the metadata. 
The GIF format supports as many comments as you want, using any keyword as the tag field 
name. The keyword is not saved with the metadata. On loading, each comment is attached to 
a tag key named “CommentX” where X is a number ranging from 0 to N-1, where N is the 
number of comments in the GIF file. 
FIMD_EXIF_*
These models are used to load Exif metadata stored in JPEG images. The following sub-
models are supported: 
FIMD_EXIF_MAIN
This is the Exif-TIFF metadata, i.e. the metadata that are common to both TIFF and Exif files. 
FIMD_EXIF_EXIF
This model represents Exif specific metadata.
FIMD_EXIF_GPS
This model represents Exif GPS metadata that are part of the Exif standard. 
FIMD_EXIF_MAKERNOTE
Exif maker notes are metadata that are added by camera constructors. There is no public 
specification for these metadata and each constructor uses its own specification to name the 
tag fields. 
The following makers are currently supported by the library: Asahi, Canon, Casio (type 1 and 
type 2), Fujifilm, Kyocera, Minolta, Nikon (type 1, type 2 and type 3), Olympus / Epson / Agfa, 
Panasonic, Pentax and Sony.
FIMD_EXIF_INTEROP
This model represents the Exif interoperability metadata.
Note: the Exif specifications can be downloaded at the following URL:
http://www.exif.org
FIMD_IPTC
This model represents the Information Interchange Model (IIM), also called IPTC/NAA 
metadata model, and was originally defined by the IPTC and the Newspaper Association of 
America (NAA) (see http://www.iptc.org/IIM/
).
This model was widely used by Adobe Photoshop but its support is no longer encouraged
neither by the IPTC nor by Adobe, as it has been replaced by the XMP standard. 
104    Bitmap function reference
FreeImage 3.13.1 documentation
Error processing SSI file
Tag ID
Key
Description
Photoshop compatible
0x0200 ApplicationRecordVersion
Application Record Version (not editable)
0x0203 ObjectTypeReference
Object Type Reference
-
0x0204 ObjectAttributeReference
Object Attribute Reference
-
0x0205 ObjectName
Title
0x0207 EditStatus
Edit Status
-
0x0208 EditorialUpdate
Editorial Update
-
0x020A Urgency
Urgency
0x020C SubjectReference
Subject Reference
-
0x020F Category
Category
0x0214 SupplementalCategories
Supplemental Categories*
0x0216 FixtureIdentifier
Fixture Identifier
-
0x0219 Keywords
Keywords*
0x021A ContentLocationCode
Content Location Code
-
0x021B ContentLocationName
Content Location Name
-
0x021E ReleaseDate
Release Date
-
0x0223 ReleaseTime
Release Time
-
0x0225 ExpirationDate
Expiration Date
-
0x0226 ExpirationTime
Expiration Time
-
0x0228 SpecialInstructions
Instructions
0x022A ActionAdvised
Action Advised
-
0x022D ReferenceService
Reference Service
-
0x022F ReferenceDate
Reference Date
-
0x0232 ReferenceNumber
Reference Number
-
0x0237 DateCreated
Date Created
0x023C TimeCreated
Time Created
-
0x023E DigitalCreationDate
Digital Creation Date
-
0x023F DigitalCreationTime
Digital Creation Time
-
0x0241 OriginatingProgram
Originating Program
-
0x0246 ProgramVersion
Program Version
-
0x024B ObjectCycle
Object Cycle
-
0x0250 By-line
Author
0x0255 By-lineTitle
Author's Position
0x025A City
City
0x025C SubLocation
Sub-Location
-
0x025F Province-State
State/Province
0x0264 Country-PrimaryLocationCode
Country Code
-
0x0265 Country-PrimaryLocationName
Country Name
0x0267 OriginalTransmissionReference
Transmission Reference
0x0269 Headline
Headline
0x026E Credit
Credit
0x0273 Source
Source
0x0274 CopyrightNotice
Copyright Notice
0x0276 Contact
Contact
-
0x0278 Caption-Abstract
Caption
0x027A Writer-Editor
Caption Writer
0x027D RasterizedCaption
Rasterized Caption
-
0x0282 ImageType
Image Type
-
0x0283 ImageOrientation
Image Orientation
-
0x0287 LanguageIdentifier
Language Identifier
-
0x0296 AudioType
Audio Type
-
0x0297 AudioSamplingRate
Audio Sampling Rate
-
0x0298 AudioSamplingResolution
Audio Sampling Resolution
-
0x0299 AudioDuration
Audio Duration
-
0x029A AudioOutcue
Audio Outcue
-
0x02B8 JobID
Job ID
-
0x02B9 MasterDocumentID
Master Document ID
-
0x02BA ShortDocumentID
Short Document ID
-
0x02BB UniqueDocumentID
Unique Document ID
-
0x02BC OwnerID
Owner ID
-
0x02C8 ObjectPreviewFileFormat
Object Preview File Format
-
0x02C9 ObjectPreviewFileVersion
Object Preview File Version
-
0x02CA ObjectPreviewData
Audio Outcue
-
0x02DD Prefs
PhotoMechanic preferences
-
0x02E1 ClassifyState
Classify State
-
0x02E4 SimilarityIndex
Similarity Index
-
0x02E6 DocumentNotes
Document Notes
-
0x02E7 DocumentHistory
Document History
-
0x02E8 ExifCameraInfo
Exif Camera Info
-
* semicolon separated list of words
Legend:
yes : 
no :    -
Table 19: List of tag keys supported by the IPTC metadata model. 
FreeImage 3.13.1 documentation
Bitmap function reference    105
Error processing SSI file
FIMD_XMP
FIMD XMP represents a single Adobe XML packet and is indexed using the tag field name 
XMLPacket”.
The Adobe XMP standard is described at the following URL:
http://www.adobe.com/products/xmp/main.html
FIMD_GEOTIFF
This model represents the GeoTIFF metadata standard and is used to add georeferencing 
information to TIFF files. 
The GeoTIFF specifications can be found at the following URL:
http://www.remotesensing.org/geotiff/geotiff.html
FIMD_ANIMATION
This model is used to load and save animation metadata attached to an animated GIF or 
MNG file. Metadata supported by the FIMD_ANIMATION model have been defined by 
FreeImage. Currently, this model is only supported by the GIF plugin. 
The FIMD_ANIMATION specifications are described later in this appendix. 
FIMD_CUSTOM
FIMD_CUSTOM is a placeholder metadata model that can be used to store user specific 
metadata. It can be used for example to store metadata that would be used by a custom 
plugin written by you. 
106    Bitmap function reference
FreeImage 3.13.1 documentation
Error processing SSI file
FIMD_ANIMATION metadata model specification
The Animation metadata model is a generic model used to load and save animation metadata 
attached to an animated file (such as a GIF or a MNG file). Metadata supported by this model 
have been defined specifically for the FreeImage library (this is not a metadata standard such 
as Exif). 
When saving animation metadata to an animated file, the FreeImage metadata are 
transparently translated to the metadata required by a given plugin specification. On the other 
hand, when loading an animated file, its animation metadata are transparently translated to 
the FreeImage animation metadata model. 
Currently, this model is only supported by the GIF plugin. 
The following metadata are supported by the model. 
Tags relating to a single page or relating to page 0 of a multipage animated file
Tag Name
Field Name
Tag ID
Type
Count
Dec
Hex
Logical width
LogicalWidth
1
0x0001
FIDT_SHORT
1
Logical height
LogicalHeight
2
0x0002
FIDT_SHORT
1
Global palette
GlobalPalette
3
0x0003
FIDT_PALETTE
Any
Loop
Loop
4
0x0004
FIDT_LONG
1
Tags relating to each page (including page 0) of a single page or a multipage 
animated file
Tag Name
Field Name
Tag ID
Type
Count
Dec
Hex
Frame left
FrameLeft
4097
0x1001
FIDT_SHORT
1
Frame top
FrameTop
4098
0x1002
FIDT_SHORT
1
No local palette
NoLocalPalette
4099
0x1003
FIDT_BYTE
1
Interlaced
Interlaced
4100
0x1004
FIDT_BYTE
1
Frame time
FrameTime
4101
0x1005
FIDT_LONG
1
Frame disposal method
DisposalMethod
4102
0x1006
FIDT_BYTE
1
FreeImage 3.13.1 documentation
Bitmap function reference    107
Error processing SSI file
Note: 
The following values are supported by the DisposalMethod tag: 
GIF_DISPOSAL_UNSPECIFIED
= 0
GIF_DISPOSAL_LEAVE
= 1
GIF_DISPOSAL_BACKGROUND
= 2
GIF_DISPOSAL_PREVIOUS
= 3
Tags relating to a single page or relating to page 0 of a 
multipage animated file
LogicalWidth
Width of entire canvas area that each page is displayed in 0-65535
Tag
=
1 (0001.H)
Type
=
FIDT_SHORT
Count =
1
Save Default = dib's width
Load: always exists in file and set
LogicalHeight
Height of entire canvas area that each page is displayed in 0-65535
Tag
=
2 (0002.H)
Type
=
FIDT_SHORT
Count =
1
Save Default = dib's height
Load: always exists in file and set
GlobalPalette
RGBQUAD data for a "global" palette which can apply to all images with no local palette up to 
256 x FIDT_PALETTE
Tag
=
3 (0003.H)
Type
=
FIDT_PALETTE
Count =
0 to 256
Save Default = no global palette
Save Notes
: rounded down to the nearest power of 2 entries
Load: set if exists in file, not set if the file has no global palette
Additional notes (GIF specific)
The palette size must be 2, 4, 8, 16, 32, 64, 128 or 256, or no global palette (0). If you specify 
a metadata with count 127, only the first 64 will be used, since it rounds down, and the plugin 
will set the global palette size in the GIF header to be 6 bits.
Loop
The number of times the animation should be played 0-65536 (0=infinite)
Tag: 4 (0004.H)
Type: FIDT_LONG
Count: 1
108    Bitmap function reference
FreeImage 3.13.1 documentation
Error processing SSI file
Save Default = 0 (infinite loops)
Save Notes
For GIFs specifically, the NETSCAPE2.0 application extension represents the 
number of times to repeat the animation, thus, 1 repeat means 2 loops (play thru 
the animation twice), 65535 repeats is the largest value which can be stored, and 
translates to 65536 loops. 
Load: the metadata is always set to a value 0-65536 (set to 0 or 2-65536 if the extension 
is in the file, 1 if the extension is not in the file)
Tags relating to each page (including page 0) of a single page 
or a multipage animated file
FrameLeft
The x offset in the logical canvas area to display the image. (0-65535)
Tag
=
4097 (1001.H)
Type
=
FIDT_SHORT
Count =
1
Save Default = 0
Load: always exists in file and set
FrameTop
The y offset in the logical canvas area to display the image. (0-65535)
Tag
=
4098 (1002.H)
Type
=
FIDT_SHORT
Count =
1
Save Default = 0
Load: always exists in file and set
NoLocalPalette
A flag to supress saving the dib's attached palette (making it use the global palette). The local 
palette is the palette used by a page. This palette data is not set via metadata (like the global 
palette) as it is attached to the dib. 
Tag
=
4099 (1003.H)
Type
=
FIDT_BYTE
Count =
1
Save Default = 0 (meaning, yes, save the local palette data)
Load: always exists in file and set
Interlaced
Tells if the image should be stored interlaced
Tag
=
4100 (1004.H)
Type
=
FIDT_BYTE
Count =
1
Save Default = 0
Load: always exists in file and set
FrameTime
FreeImage 3.13.1 documentation
Bitmap function reference    109
Error processing SSI file
The amount of time in ms to display the frame for (GIF specific - the value stored in the file is 
centiseconds (1/100th of a second)).
Tag
=
4101 (1005.H)
Type
=
FIDT_LONG
Count =
1
Save Default = 100ms (GIF specific - the value stored is 10cs)
Save Notes
For GIF, the value specified in ms is rounded down, such as 129ms is stored as 
12cs. IE5/IE6 have a minimum and default of 100ms. Mozilla/Firefox/Netscape 
6+/Opera have a minimum of 20ms and a default of 100ms if less than 20ms is 
specified or the GCE is absent. Netscape 4 has a minimum of 10ms if 0ms is 
specified, but will use 0ms if the GCE is absent. The GIF plugin always writes a 
GCE extension to the GIF file, and it also always uses GIF89a.
Load: always set, set to 0 if does not exist in file
DisposalMethod
What to do with the logical canvas area after displaying this image.
Tag
=
4102 (1006.H)
Type
=
FIDT_BYTE
Count =
1
Save Default = GIF_DISPOSAL_BACKGROUND (restore to the background color, which 
is transparent with 0 alpha)
Save Notes
GIF_DISPOSAL_UNSPECIFIED  probably  just  does  the  same  as 
GIF_DISPOSAL_LEAVE and should not be used.
GIF_DISPOSAL_LEAVE will leave the image in place to be entirely or partially 
overdrawn by the next image.
GIF_DISPOSAL_BACKGROUND will blank out the area used by the frame with 
the background color.
GIF_DISPOSAL_PREVIOUS will return the logical canvas to the previous state 
before the image was drawn.
Load: always set, set to GIF_DISPOSAL_LEAVE if does not exist in file
Additional notes (GIF specific)
Transparency is supported individually for all pages, the first entirely transparent index in the 
table is used, the rest of the table will be entirely opaque.
The background color is only set and stored for page 0, but requires that the global palette be 
set in order to use it properly.
The GIF_PLAYBACK load flag option (see Table 3) will load a single page as a 32bpp image 
with transparency by displaying each page from 0 up to the specified page, obeying the 
transparency overlaying and gif disposal methods. Note that it does not actually play the 
image animation in a displayable way. It "plays" the image internally from page 0 to the page 
requested, returning a single still image of what that frame would really look like. 
Note that GIF_PLAYBACK will return a 32bpp image: since each individual frame may 
contain its own palette and transparency, a single frame of an animated GIF, when 
composited over top of the previous frame, may contain more than 256 colors total. It may 
not be possible to extract each frame and save them as a GIF if you want each still frame 
to look like it would look like in a web browser for example. Most GIF animation programs 
will "optimize" the GIF by making each individual frame contain lots of transparency for 
110    Bitmap function reference
FreeImage 3.13.1 documentation
Error processing SSI file
where the pixels matched the previous frame, so if you just extract the frames normally 
and save them as GIF files, everything but the first frame may look like a bunch of random 
fuzz pixels.
The GIF_LOAD256 load flag option is used internally by GIF_PLAYBACK, but can be used by 
users as well, it just prevents a lot of bitshifting and annoying things that come with 2 and 16 
color images.
Using the FIMD_ANIMATION metadata model
This model is useful for generating animated GIFs with FreeImage, which web browsers will 
later be displaying. The metadata is used to save (and load) the various options that GIF files 
support for defining an animation.
The simplest of examples would not need to change any metadata. Just open a multipage 
GIF with create_new=TRUE and start adding pages to it.
The GIF generated when you close the multipage image will loop forever, and display each 
page for 1/10 of a second (100ms).
Each page of the GIF will have its own palette and fill the entire logical area.
The worst snag a user could run into is adding pages to the multipage bitmap which are larger 
than the first page they added, because without setting specific metadata, the logical canvas 
area will be set to the same size of the first page, and it is undefined (not allowed) by the GIF 
specification technically if you have a frame extend outside the canvas area. (IE/Firefox will 
simply make the image larger as needed for the largest frame, Opera will chop off any portion 
of the image that is outside the logical area). 
// assume we have an array of dibs which are already 8bpp and all the same size, 
// and some float called fps for frames per second
FIMULTIBITMAP *multi = FreeImage_OpenMultiBitmap(FIF_GIF, "output.gif", TRUE, FALSE);
DWORD dwFrameTime = (DWORD)((1000.0f / fps) + 0.5f);
for(int i = 0; i < 10; i++ ) {
// clear any animation metadata used by this dib as we’ll adding our own ones
FreeImage_SetMetadata(FIMD_ANIMATION, dib[i], NULL, NULL);
// add animation tags to dib[i]
FITAG *tag = FreeImage_CreateTag();
if(tag) {
FreeImage_SetTagKey(tag, "FrameTime");
FreeImage_SetTagType(tag, FIDT_LONG);
FreeImage_SetTagCount(tag, 1);
FreeImage_SetTagLength(tag, 4);
FreeImage_SetTagValue(tag, &dwFrameTime);
FreeImage_SetMetadata(FIMD_ANIMATION, dib[i], FreeImage_GetTagKey(tag), tag);
FreeImage_DeleteTag(tag);
}
FreeImage_AppendPage(multi, dib[i]);
}
FreeImage_CloseMultiBitmap(multi);
FreeImage 3.13.1 documentation
Bitmap function reference    111
Error processing SSI file
112    Bitmap function reference
FreeImage 3.13.1 documentation
Error processing SSI file
Error processing SSI file