bitmap, picture, photo file types overview

10/20/2009
ANI Windows animated Shows cursor animation
cursor
ART AOL ART Still images
BMP Windows Bitmap Windows and OS/2; 2/8/16/24/32 bpp; RLE and uncompressed
CUR Windows cursor
DCX Multiple-page PCXd All sub-types and multiple pages supported
DJV DjVu
EMF Enhanced Metafile Win32 enhanced placeable metafiles
Format
EPS Encapsulated Displays embedded thumbnail only (TIFF formats)
PostScript
GIF Graphics Interchange Single page and animated; 87a and 89a
Format
FPX FlashPix Multiple resolution support
ICN AT&T ICN
ICO Windows icon Shows multiple resolutions as separate pages
IFF EA/Amiga Interchange 1-24 bpp, including HAM and HAM8; multiple pages and animations not supported
File Format
JPG JPEG JFIF JFIF and AdobeTM CMYK
KDC Kodak™ KDC Reads both the full image and the embedded thumbnail
MAG MAG All sub-types supported
PBM Portable BitMap
PCD Kodak™ PhotoCD Up to 3072x2048 resolution (16BASE)
PCX ZSoft Publisher's All sub-types supported
Paintbrush
PGM Portable GrayMap
PIC SoftImage PIC All sub-types supported
PCT Macintosh PICT
PIX Alias PIX 24 bpp
PNG Portable Network All sub-types supported
Graphics
PPM Portable PixMap
PSD Adobe™ PhotoShop RGB, grayscale, duotone, paletted and bi-level Lab color interpreted as grayscale only
Document
PSP Paint Shop Pro Version 5 and version 6
RAS Sun Raster Uncompressed and RLE compressed
RSB Red Storm image All sub-types are supported
format
SGI SGI Image Format 8-32 bpp; no colormaps; RLE or uncompressed
TGA Targa TGA All sub-types supported
TIFF Tag Image File 1/2/4/8/12/16 bits per sample, 1-4 samples per pixel. Bilevel/RGB/Paletted/CMYK/YCrCb/LOGL/LOGLUV. Uncompressed/PackBits/LZW//ThunderScan/ SGILog/CCITT/ZIP/NEXT/New-JPEG (no v6.0 JPEG support)Support for multi-page documents
Format
WMF Windows Metafile Win 3.x placeable metafiles
Format
XBM X bitmap
XPM X pixmap
Write support
BMP Windows Bitmap Windows 1/8/24 bpp
GIF Graphics Interchange Non-interlaced GIF 89a only
Format
JPEG JPEG JFIF 8 and 24 bpp. Progressive and baseline. Adjustable compression factor, subsampling, smoothing and Huffman code optimization.
PCX ZSoft Publisher's 8 and 24 bpp; RLE compressed
Paintbrush
PNG Portable Network 1/4/8 bpp colormapped; 24 bpp RGB
Graphics
RSB Red Storm image All sub-types supported
format
TGA Targa TGA 8 and 24 bpp. RLE and uncompressed. Top-down and bottom-up
TIFF Tag Image File 1/8/24 bits per pixel, single-page. Uncompressed, CCITT3, CCITT4, LZW, Deflate (ZIP), and JPEG compression. Adjustable DPI tags.
Format
Posted in: Others Software| Tags: Extension photo Bitmap Picture JPG Cur DCx DJV EPS GIF FPX ICO ICN IFF PIC PGM PPM PSD

Everyone talk at once: .NET 4.0 will include Parallel Extensions

06/16/2009

Parallelism in programming has largely been conducted in the laboratories. But with the next version of the .NET Framework, developers everywhere will be able to experiment with what could become a monumental change in languages.

In perhaps the most significant development in the brief history of the field of implicit parallelism in computing, one of Microsoft's development teams announced last Friday that the next .NET Framework 4.0 -- the first glimpses of which we'll see later this month from PDC in Los Angeles -- will include the so-called Parallel Extensions as a standard feature. This after the Extensions were first introduced in a Community Technology Preview last November.

The significance of these extensions is that they enable existing .NET languages (today, most predominantly, C#) to incorporate implicit parallelism directly in programs. In other words, rather than simply write ordinary procedural code and use compiler switches to determine whether code can be forked into parallel threads, a developer can use entirely new syntax to invoke methods that execute multiple threads concurrently.

In conjunction with the new Language Integrated Query (LINQ) that Microsoft already introduced formally earlier this year, the possibilities for parallel applications that run on multicore servers or data clusters is astounding. To explain: In the old procedural model of algorithmic programming, any function that affects a set of data in a table based on conditions, has to include instructions that explicitly examine each record in that table, test it for the current criteria, and invoke changes to all records that pass. With LINQ, a more SQL-like structure is utilized instead, where a single instruction can point automatically to all records that match criteria, and the change is stated once and once only.

Now, pair that with the Parallel Extensions: Using an up-and-coming syntax gleaned from calculus called lambda expressions, a C# developer can write an instruction where the criteria are expressed inline, similar to an anonymous delegate. It becomes a way of saying in a single expression, "For all x where x meets these criteria, make a change according to the following..."

One difference, as Microsoft developer and corporate VP Scott Guthrie explained in a recent blog post, has to do with explicit typing. Unlike the case with C#'s traditional anonymous delegates (a feature added with version 2.0), types in such inline functions do not need to be explicitly declared. "Unlike anonymous methods, which require parameter type declarations to be explicitly stated, Lambda expressions permit parameter types to be omitted and instead allow them to be inferred based on the usage," Guthrie wrote.

With a myriad of parallel threads operating on data concurrently -- most importantly, on the same data -- how will the compiler be able to keep track of which changes should be implemented when? For a database management system, that subject has already been explored and largely solved, using something called the transactional model.

Recently, a team of Microsoft researchers working with the Parallel Extensions have been investigating whether a similar transactional model can be applied at a much lower level.

"Transactional memory is not about 'removing locks' but is about abstracting away the requirement to specify a particular lock," wrote Microsoft researcher Dana Groff in a blog post last week. "Instead, you can structure your code in well defined sequential blocks of code, what in the database world we call 'units of work,' and then let the underlying runtime system, compiler, or hardware provide you the guarantees you desire. Further, you want this work to scale. To do that, the underlying system provides concurrency control optimistically. Instead of always locking a resource, the transactional memory system assumes that there is no contention. Instead, it detects when these assumptions are incorrect and rolls back changes that were made in the block. Depending on the implementation, the transactional memory system may then re-execute your block of code."

A transactional memory model would drastically reduce, if not completely eliminate, contention between multiple threads acting upon differing views of the same data in memory. The implementation of that model would most likely take place using extensions to programming languages made possible by Microsoft's Task Parallel Library, which will be one part of Parallel Extensions in .NET Framework 4.0.

Posted in: C# and .NET| Tags: NET Programming .NET 4.0 Parallel Extension Extension everyone experiment change framework version talk parallelism development

Hot Posts

Latest posts

Tags

Others

Sponsors

asp.net interview questions