EasyBMP C++ Bitmap Library

EasyBMP Project News (2005)

EasyBMP Version 0.70 Released with New License
Posted on October 22, 2005

EasyBMP is an easy cross-platform C++ library for reading and writing Windows bitmap (BMP) files. No installation, no need for external libraries, small in size, well-documented, and simple enough for the novice programmer to start in just minutes! EasyBMP particularly shines as an easy image input/output tool for scientists and other technically-minded people who may not be formally trained in programming.

EasyBMP is pleased to release Version 0.70 of the core library. This release focuses on fixing reported bugs, better compiler support, and a new, freer license. This release fixes a small bug in the BMP::ReadFromFile() function that prevented EasyBMP from detecting invalid bit depths. A previous code change that broke support for Microsoft's Visual C++ 6.0 has been reversed, so that MSVC++ is once again supported. Changes have been made to support Borland's C++ compiler without breaking support for MSVC++.

Perhaps most important in this release is a license change. Due to the complexities of the LGPL and the internal structure of EasyBMP, it was unclear as to whether the "L" in LGPL actually applied. In particular, it was unclear as to whether or not projects using the EasyBMP headers unwittingly inherited the GPL license. Therefore, we are changing to the simpler and freer revised BSD license. With this change, anyone may use, modify, or distribute EasyBMP without fear of licensing issues, including corporate users. Please note that the revised BSD license is fully GPL-compatible. It has always been our intention that EasyBMP be available to the largest class of users possible, and this license change should make that possible.

The EasyBMP Library Files Version 0.70 can be downloaded from SourceForge at

http://prdownloads.sourceforge.net/easybmp/EasyBMP_0.70.zip?download

and release notes can be found here:

https://sourceforge.net/project/shownotes.php?release_id=365356

Additional support, documentation, code samples, and extensions can be found at the EasyBMP project website:

http://easybmp.sourceforge.net

EasyBMP is grateful for the support and hosting services of SourceForge.net. We hope that others find EasyBMP as simple and effective as we do. Best wishes -- macklin01

New Release and New License Coming
Posted on October 22, 2005

I will be posting an update to EasyBMP very soon that resolves a few compiler issues and other bugs.

Perhaps more importantly in the coming release, I'm looking into licenses that are more free, such as the AFL, BSD, and MIT licenses. It has been brought to my attention that due to the nature of the EasyBMP code, the "L" in "LGPL" may not actually apply, making it in effect GPL. It was never my intent to have such a restrictive license, as I would also like corporate users to have the opportunity to use EasyBMP as their simple bitmap I/O libraries.

So, any comments or suggestions on a new license would be appreciated. My email address is pmacklin@math.uci.edu.NOSPAM. (Remove the "NOSPAM" to email.) Thanks! -- Paul

EasyBMP Update
Posted on October 19, 2005

Hello, everyone.

Sorry for my lack of news updates. Since the last update, Version 0.68 and 0.69 were released. Version 0.68 focused primarily upon extending compatibility to Borland's free command line C++ compiler. It also gave some minor boosts in efficiency. Lastly, it improved the ability of the library to detect corrupted bitmap (BMP) files in the ReadFromFile() function.

Version 0.69 focuses on two minor feature enhancements. In the first, whenever a char* was used as a function argument, we now use const char*. This should improve compatibility between EasyBMP and other software, and it's a good programming practice. In the second enhancement, we now return true/false (rather than void) in several functions such as ReadFromFile() and WriteToFile() to indicate success/failure of the function.

Lastly, I note that I'm terribly behind on updating the documentation. An update is now in the works. I hope to eventually include documentation on the extensions package as well. Okay, thanks! -- Paul

Short-Term Development Hiatus
Posted on September 26, 2005

Hello, everyone.

September and October are going to be busy months with me, as I have a wedding in the family and am planning to advance to Ph.D. candidacy. Accordingly, I'm going to take a short-term break on EasyBMP development. However, I will still provide support and answer any EasyBMP-related correspondance. Thank you again, and I'll see you all in a couple of months! -- Paul

EasyBMP Version 0.67 Released
Posted on September 14, 2005

EasyBMP is an easy cross-platform C++ library for reading and writing Windows bitmap (BMP) files. No installation, no need for external libraries, small in size, well-documented, and simple enough for the novice programmer to start in just minutes! EasyBMP particularly shines as an easy image input/output tool for scientists and other technically-minded people who may not be formally trained in programming.  

EasyBMP is pleased to release Version 0.67 of the core library. This release focuses on fixing reported bugs and code cleanup. Code has been further separated from function declarations, which should help improve compatibility when compiling projects that use EasyBMP in a DLL. Some auxiliary mathematics and endianness functions were made inline to improve performance. The bug where EasyBMP interfered with Win32 GDI if EasyBMP.h was included before windows.h was fixed. Contact and support information was updated in all the library files. Lastly, the change log was updated for improved readability and aesthetic appeal.

The EasyBMP Library Files Version 0.67 can be downloaded from SourceForge at  

http://prdownloads.sourceforge.net/easybmp/EasyBMP_0.67.zip?download

and release notes can be found here:  

http://sourceforge.net/project/shownotes.php?release_id=356582

Additional support, documentation, code samples, and extensions can be found at the EasyBMP project website:  

http://easybmp.sourceforge.net

EasyBMP is grateful for the support and hosting services of SourceForge.net. We hope that others find EasyBMP as simple and effective as we do. Best wishes -- macklin01

EasyBMP Debuts New Extensions Package
Poste on September 9, 2005

EasyBMP is an easy cross-platform C++ library for reading and writing Windows bitmap (BMP) files. No installation, no need for external libraries, small in size, well-documented, and simple enough for the novice programmer to start in just minutes! EasyBMP particularly shines as an easy image input/output tool for scientists and other technically-minded people who may not be formally trained in programming.

EasyBMP is pleased to introduce a new Extensions Package. The purpose of this new package is to leverage and extend the capabilities of EasyBMP to interface with popular environments such as the win32 API and OpenGL. Version 0.66.00 includes the following utilities:

  1. EasyBMP_SimpleArray.h: Provides easy import and export of tab, comma, and space-delimited data files, as are typically found in scientific applications.
  2. EasyBMP_Geometry.h: Draws anti-aliased lines and circular arcs.
  3. EasyBMP_Font.h: Provides an anti-aliased, scalable font that is particularly useful for easily labeling scientific plots.
  4. EasyBMP_win32.h: An interface between EasyBMP and the win32 API. Converts between HBITMAP and BMP objects, and provides utilities for window and screen captures.
  5. EasyBMP_OpenGL.h: An interface between EasyBMP and OpenGL. Provides routines for converting BMP objects to OpenGL textures.

It is our hope that the new EasyBMP Extensions Package will provide new value to our user base while maintaining the philosophy of a small, reliable, easy-to-use, and well-documented core library. The EasyBMP Extensions Package Version 0.66.00 can be downloaded from SourceForge at

http://prdownloads.sourceforge.net/easybmp/EasyBMP_extensions_0.66.00.zip?download

and release notes can be found here:

http://sourceforge.net/project/shownotes.php?release_id=355281

Additional support, documentation, code samples, and extensions can be found at the EasyBMP project website:

http://easybmp.sourceforge.net

EasyBMP is grateful for the support and hosting services of SourceForge.net. We hope that others find EasyBMP and the new Extensions Package as simple and effective as we do. Best wishes -- macklin01

New Extensions Package Coming Soon
Posted on August 22, 2005

I'll be adding a new package to EasyBMP in the near future: a package of useful extensions. The first addition to this package will be EasyBMP_win32.h, a set of functions to convert BMP objects to and from HBITMAP/HDC objects. It will also include a few screen and window capture functions, and it will provide a means of better interfacing EasyBMP with win32 applications. Many thanks to Michael Nistler of Minnesota, who is helping to develop this extension! -- macklin01

Documentation Updated
Posted on August 21, 2005

I just updated the documentation to match Version 0.66. You can find the documentation here.

Updated Documentation Coming Soon
Posted on August 19, 2005

I'm in the final stages up proofreading and updating the documentation to match Version 0.66. I'll release it no later than Sunday. -- macklin01

Version 0.66 Released
Posted on August 18, 2005

EasyBMP Version 0.66 completes the move to making all data members of the BMP class private, yielding a more robust and simpler-to-use library. Color tables can now only be accessed and modified through the safe GetColor and SetColor operations.

EasyBMP has seen several major changes to its API since its introduction in January 2005, each of which has led to improvements to ease-of-use, robustness, and safety. Version 0.66 marks a major milestone for the project: we are enacting a feature freeze on the API for the core library. Future releases will now focus on robustness, efficiency, code cleanup, and bug fixes. We intend to change the status of EasyBMP from Beta to Production/Stable in November 2005 or Version 0.75, whichever comes sooner. With the core library fixed and stable, we can turn our attention to providing additional resources for interfacing EasyBMP with common programming environments.

EasyBMP Version 0.66 can be downloaded from SourceForge at

http://prdownloads.sourceforge.net/easybmp/EasyBMP_0.66.zip?download

and release notes can be found here:

http://sourceforge.net/project/shownotes.php?release_id=349772

Additional support, documentation, code samples, and add-ons can be found at the EasyBMP project website:

http://easybmp.sourceforge.net

EasyBMP is grateful for the support and hosting services of SourceForge. We hope that others find EasyBMP as simple and effective as we do. Best wishes -- macklin01

Version 0.65 Released
Posted on August 13, 2005

This release focuses on code cleanup and improved robustness. Any functions that were still implemented inside a class were moved outside. The RGBApixel** Pixels data member of the BMP class was made private. Two new functions were added to provide a safe means to access and edit colors in the color table of a BMP object. This will pave the way to making RGBApixel* Colors a private data member in a future release. Lastly, error messages were cleaned up throughout the library.

I probably won't update the documentation until Version 0.66, at which point I hope to have made Colors a private member of BMP. That will require some fairly extensive rewriting of the color table functions and the documentation of how to modify color tables.

Transition from Beta to Production/Stable
Posted on August 9, 2005

Things seem to be solidifying nicely in the library. The user interface has remained essentially fixed since Version 0.55 and higher, and bug fixes and code cleanups have been required less and less.

I hope to change the status of EasyBMP from its current beta state to production/stable by Release 0.75 or November 9, 2005, which is three months from now. So, from here on out, all releases in the default branch will focus primarily on bug fixes, code cleanup, and continued improvement in compatibility. But as always, if you have a feature request, I definitely want to hear it. The major reason for giving it another 3 months and/or 11 releases of waiting time is to allow the library to solidify further and implement any desired features that remain true to the philosophy of the project.

Okay, thanks! -- Paul

Documentation Updated
Posted on August 4, 2005

I just finished updating and revising the documentation to match Version 0.64. Besides necessary grammatical corrections, I have included documentation on some hidden "helper" functions that may prove useful.

Version 0.64 has been Released ; Documentation to Follow
Posted on August 3, 2005

I just released Version 0.64. Download it here.

This release focuses on code cleanup, minor bugfixes, and improved standards compliance/compatibility. Namespaces have been better applied, and more modern C++ library headers have been used. Also, some pragmas have been added to each header so that it should be fine the include EasyBMP.h multiple times in larger projects.

Also, I'm currently revising the documentation to match the new release and to eliminate typographical and grammatical errors. Expect a release in the next few days.

ResizeBMP Code Sample Updated
Posted on July 27, 2005

I just updated the ResizeBMP code sample. Evidently, some of the "safety checks" I had written in to avoid accessing out-of-range pixels were buggy. The sample should work now.

Website given a Facelift (again)
Posted on July 24, 2005

I just gave the website another major facelift. Finally, I can ditch the outdated, ugly frameset construction. Yes, it's a blatant ripoff of my website. :-)

Documentation Updated
Posted on July 22, 2005

Download it here.

Version 0.63 has been Released
Posted on July 21, 2005

I just released Version 0.63. Download it here.

This release focuses on enhancing safety/reliability and cleaning up the code. More checks have been added to avoid accessing non-existent pixels, and warning messages have been added to cue in the user. The color table functions have been rewritten in a much more elegant manner; this has brought the size of the library down to under 43KB. Lastly, the appearance of error messages has been made more consistent throughout the library.

I'm back!
Posted on July 16, 2005

I'm back! :-) I passed my qualifier exam, and I'm ready to get back in the FOSS game. I recently redesigned my website, and I'll likely do something similar for EasyBMP sometime soon.

It looks like I promised some new documentation. I guess I'd better start with that. I also hope to incorporate some feedback from a nice user in Australia. I'll try to move to a better convention of putting the actual code in separate cpp files so that EasyBMP can scale better with large projects.

New Documentation Coming Soon
Posted on May 25, 2005

I plan to update the documentation to reflect the newly supported architectures and minor name changes to some of the less-used functions.

Version 0.62 Released (with support for big-endian arch.)
Posted on May 25, 2005

Click here to download the new version.

This is a big release. As of Version 0.62, EasyBMP supports all architecture, including little-endian (e.g., x86) and big-endian (e.g. PowerPC G5), on all platforms. However, the support for big-endian architectures is new, and so there may be bugs.

The next several releases will work towards solidifying support of the big-endian architectures, improving stability, and squashing any remaining bugs. :-)

First Successful Write to a Big-Endian Machine!!
Posted on May 24, 2005

I just had my first successful write to a big-endian machine: a Sun Sparc 4. The Endianess detection is working quite well, and I wrote some routines to swap the bytes in the WORD, DWORD, BMFH, and BMIH data types. Because these are the only data types that span multiple bytes, they are the only parts of the library affected by endianess.

Version 0.62 should provide experimental support for big-endian architectures. This will include the PowerPC architecture on OS X, for instance, and the Sun Sparc 4 on Solaris. (That's what I'm using for testing.)

In our first iteration, reading and writing support will be the focus. After that, I'll start fanning through all the other functions, particularly in EasyBMP_VariousBMPutilities.h. From this point forward, it is my intention to support as many platforms as possible, including Mac OSX on the PowerPC. -- Paul

Documentation Updated
Posted on May 23, 2005

I just updated the documentation. See here to get it.

Project Moving Forward
Posted on May 23, 2005

As of Version 0.61, EasyBMP seems to be pretty solid on the x86 architecture, and should probably be fine on any little-endian machine. So, I'm going to start fiddling with getting the library to work on big-endian machines. I have a Sun SPARC machine that I can ssh into to work on, so I have a platform to test on.

If and when the library works there, EasyBMP should be truly platform-independent. Most notably, getting EasyBMP to work on big-endian machines should allow it to run on the Macintosh platform. -- Paul

Version 0.61 released
Posted on May 23, 2005

Click here to download the new version.

This release fixes the awIndex typo in the WriteToFile() function. It also replaces some floating point operations with integer operations in WriteToFile() to speed up the writing of 8-bit files. Lastly, it tweaks CreateGreyscaleColorTable() to slightly improve the range of colors for 4-bit files.

Version 0.60 released
Posted on May 21, 2005

Click here to download the new version.

This is the long-promised release that deprecates the older version of the library. This bring the entire core library to just under 50 KB with more supported files than the older files. I'm doing this because I tested the new code with Linux extensively and found the robustness and functionality to be excellent.

I also added more checks in ReadFromFile(), SetBitDepth(), and SetSize() to guard against changing to unsupported bit depths or negative sizes.

Otherwise, please see the change log.

Steganography Code Samples Updated
Posted on May 18, 2005

I updated the Steganography code samples. These programs take a text file (actually, any file should do) and hides it in a bitmap image. Very fun stuff to toy with. I may add a new variant that hides all the information in the alpha channel of a 32-bit BMP file; since many people never examine that color channel and it would never cause visual distortion, it might be an ideal way to go.

My next update will be a rewrite of the DataPlotter code sample to use the new library version. If that works fine, too, and if all these examples also work in Linux, then I'll make my minor revisions and release Version 0.60 with the legacy libraries deprecated. -- Paul

ResizeBMP Code Sample Updated
Posted on May 17, 2005

I just finished updating the ResizeBMP code sample. This simple test application takes an existing 1, 4, 8, 24, or 32-bit file and resizes it to a desired width, height, or percentage while preserving aspect ratio. It has a pretty nice user interface, and so you could associate a "right-click" action with it. (Similar to the WindowsXP Resize Image powertoy, but without the annoying quirk of always writing a 32-bit output.)

Next time I update it, I'll include a *.reg file that automates this. -- Paul

ColorToGrey Code Sample Updated
Posted on May 16, 2005

I just finished updating the ColorToGrey code sample. This simple test application takes an existing 1, 4, 8, 24, or 32-bit file and converts it to greyscale. 24 and 32-bit files are converted to 8-bit files in the process to save disk space.

I also updated the BMPinfo code sample to use the most recent library version.

Version 0.59 released
Posted on May 15, 2005

Click here to download the new version.

This version addresses continuing robustness issues and is apparently successful. As soon as I'm satisfied with its stability, I'll phase out the legacy files. So far, everything looks pretty good, and I'm very happy with the changes.

This version completes support for 1-bit files. Now, 1, 4, 8, 24, and 32-bit files have full read and write support, which is every valid bit depth I've ever heard of.

I hope to update the documentation soon, but there's not much to change there at this time. -- Paul

Version 0.58 released
Posted on Spooky Friday the 13th, Math 2005

Click here to download the new version.

Stability-wise, this is an important release. It fixes a big bug in the code for reading 4-bit files. (It would crash on any 4-bit file of odd with. I'm amazed that I missed it.) I felt that the bug was so important that I couldn't afford to release the fix.

The fix also improves stability by ignore reading of files of bit depths other than 1, 4, 8, 24, and 32 bits. So, for instance, if the program receives a bogus bit depth of 20, it'll simply create a blank file of that size. I may do more in future releases to further handle this case.

However, this release does have one new feature that's pretty cool: read support for 1-bit files. In the next release, we'll overhaul the WriteToFile() routine to use the ideas found in the fixed ReadFromFile() routine; in particular, Version 0.59 will support writing to 1-bit files.

Lastly, I plan to update the documentation for this release soon, possibly by tomorrow. -- Paul

BMPinfo Code Sample Updated ; Bug in 4-bit BMP files found
Posted on May 13, 2005

I just updated the BMPinfo code sample to use the newest version of the library; it can be found here. I plan to continue updating the code samples.

I just found a bug in 4-bit bitmap files. Evidently, it crashes on reading 4-bit files of odd width. This is strange, as I could have sworn I had tested such cases extensively. Well, I'll give it a look later on, then. -- Paul

Version 0.57 Documentation Updated ; Miscellany
Posted on May 12, 2005

I fixed some typos in the documentation, particularly in the code samples. I also included the rgb.tex file, which is required for LaTeX. (I thought I already had. :-))

Also, I hope to update the sample codes using the new interfaces soon. And as I get a free moment here or there, I'll be updating the website to conform to W3C HTML 4.01 standards. ;-) -- Paul

Version 0.57 and Documentation
Posted on May 8, 2005

I just released Version 0.57, along with updated documentation. This is primarily a stability release; the code should be more robust when reading corrupted and/or truncated files, in that no such file should cause a program crash. Of course, if you read a corrupted file, expect funny results. :-)

I hope to update the code examples soon, now that the new version of the library is starting to settle down. -- Paul

Add-ons Updated
Posted on Cinco de Mayo, 2005

I just updated the SimpleArray, Geometry, and Font add-ons. They should be fully compatible with EasyBMP Version 0.56.

Documentation Updated ; Site Updated
Posted on Cinco de Mayo, 2005

My long-promised update to the documentation has just been uploaded; see this link for more.

Also, I reorganized the site slightly. The biggest changes are direct links to the documentation and support. I'm just now experimenting with the SourceForge support tracker options, but it looks pretty cool!

Soon, I'll update the sample codes and add-ons to use the most recent library version and its interfaces.

Well, I'm exhausted. Later! -- Paul

Version 0.56 Released
Posted on 5-4-2005

This release focus on improving palette support, bugfixing, and making vital variables like Height, Width, and BitDepth private along with functions for accessing and changing them.

For instance, the SetBitDepth(int) function correctly changes the bit depth and automatically creates and/or resizes the palette if necessary. By making this the only method of changing the bit depth, we can always guarantee that a BMP object has a correctly-sized palette. This, in turn, greatly simplifies any code for changing a palette. (If we know the bit depth, we already know how big the palette is.) For other changes, please see the change log.

You can download Version 0.56 here.

Version 0.55 Released
Posted on 5-3-2005

Okay, I uploaded Version 0.55. Please see the change log, but the biggest change is the consolidation of the BMP* classes into a single BMP class. This has allowed for some major simplification in the code base! Also, writing for various bit depths is greatly simplified.

In a few days, I'll be uploading new versions of the EasyBMP_Geometry and EasyBMP_Font add-ons to use this new version. I am also working on new documentation and hope to have that up, too.

There appear to be some issues with palettes, but it shouldn't present any problems for simple read/write operations. Okay, that's it! Thanks :-) -- Paul

But Some Fun Continues ... :-)
Posted on 4-28-2005

Okay, my research was absolutely driving me nuts last night, so I did some work on my next-generation, unified BMP class. Things are turning out well. In this new class, all bitmaps are represented internally as 32-bit files. The software only differentiates between color depths during file read and write operations. What does this mean? For starters, the user interface should be greatly simplified. Also, writing utilities should be simpler; there's no need to write a copy for each bit depth, as is the case right now.

As of a few minutes ago, this new code can read and write 4, 8, 24, and 32-bit bitmap files, just as the old files. I still need to do some work on improving palette support, but the core functionality is there. This will also provide the opportunity to ditch the BITMAPINFOHEADER and BITMAPFILEHEADER structures that are only needed to read and write files, along with the goofy and largely unnecessary #push and #pop pragmas. Perhaps this will eventually help in supporting more architectures.

These new changes will appear in Version 0.55. I'm not sure how much support I'll provide for "legacy" code. (I never promised any interface stability before 1.0!!!) But I'll see what can be done. At the very least, all code examples will be updated to compile with the newest library when it's released.

Well, it's time to get back to work. Later!! -- Paul

Temporary Development Vacation
Posted on 4-23-2005

Hi, and sorry for my lack of updates and coding revisions. Things are insanely busy with my Ph.D. program right now. I'm studying for my last remaining written Ph.D. qualifier exam (complex analysis), doing a lot of research, and teaching. So, in light of my desire to do all these things well, I'm taking a temporary vacation until after my exam. (June 21)

I may work on the code in my few minutes of downtime here and there, but there likely won't be any major releases until then. (But after that, expect a major rewrite of the library to simplify the interfaces!!) However, if you need debugging help, please do send me a line; I'll do my best to help.

All the best -- Paul

Long time, no update
Posted on 3-30-2005

Okay, it's been awhile, so I thought I'd post an update here. Besides, it's my bday, so I guess I get to goof off for a little bit. :-)

I'm working on a unified BMP class that will unify the BMP4, BMP8, BMP24, and BMP32 classes. Internally, everything will be represented as 32-bit images. The only distinction between bit depths will be during load/save operations. This will have several benefits, chiefly cutting down on code complexity, making it easier to combine parts of images of different depths, reducing code size, etc. It may even make it easier to extend it to other bit depths later (e.g., 1-bit and 2-bit images.)

The downside is that images with palettes may be more difficult to work with. I may add a sort of "kludge" to work around that. (i.e., set a bit value in the class that indicates that the red channel is just a palette index.) Honestly, I'm not entirely certain how I'll do that yet.

I've done some experimental work in auto-generating the best 8-bit palette for a given image (trying a sort of "best-fit" idea). Clearly, something like that should be done for the process of saving a lower-bitdepth image. But I can add that on later.

Well, that's that for now, but that's what's going on at the moment. Thanks -- Paul

SimpleArray Updated ; New Screenshots Section
Posted on 3-10-2005

I updated the SimpleArray add-on. The only change is a new SetSize routine to allow a SimpleArray to be declared and then resized later.

I also added a new screenshots section.

New add-ons: Geometry and Font
Posted on 3-5-2005

Okay, here are some major add-ons: support for anti-aliased lines and circular arcs (geometry) and an anti-aliased, fully-scalable font. The nice thing about this font is that it is completely platform-independent. No TTF files or libraries required. Just a couple of simple header files. :-) I'll post some screenshots later.

Playing with css style sheets
Posted on 2-28-2005

I'm playing around with cascading style sheets on the site today. This is something new for me, but I kind of like it. They knock 10 years off a site's age nearly instantly. :-)

Working Towards Visual Studio .Net Compatibility
Posted on 2-27-2005

I'm working with Ross in Oregon to get EasyBMP working with Visual Studio .Net. Hopefully, everything should be good with Version 0.54.

I hope to update the documentation when I get to Version 0.55.

Otherwise, if this proves to work with VS.Net, I'll make sure all my code examples are good for VS.Net with similar changes. -- Paul

PS: My scalable font is nearly done. I just want to add a few more symbols, get some anti-aliasing for lines, and test a smidgen more. But I think you'll like it! :-)

Some tricks up my sleeve
Posted on 2-21-2005

I'm working on some simple geometry routines. So far, I have a great line routine and a so-so circular arc routine. (The arcs don't look very good when the radius is small.)

Why should I make these? I'm glad you brought that up! By defining letters as combinations of lines and arcs, I hope to have a rudimentary font up and running. By doing it this way, the font should be perfectly scalable. :)

After that, I might use this new font, the SimpleArray stuff, and my previous DataPlotter to make nice looking plots. For instance, supply X, Y, and Data, and it makes a nice plot with labeled axes and a labeled colorbar.

New Release: EasyBMP Version 0.52
Posted on 2-19-2005

I just released Version 0.52. It includes a bugfix on the greyscale palette as well as improved standard colors.

On a related note, I just noticed and fixed a bug in the ResizeBMP code sample that resulted in the bottom row of pixels being messed up. -- Paul

New Code Sample: DataPlotter
Posted on 2-19-2005

I just posted a code sample (available here) that provides a quick visualization of scientific data stored in delimited ASCII text (or dat or txt or csv or whatever) files. -- Paul

New Add-on: SimpleArray
Posted on 2-18-2005

I just posted an add-on (available here) that should make it simple to import and export data from your programs, particularly for scientific visualization.

I also updated the compatibility list to make it more readable. -- Paul

Version 0.51 Released!
Posted on 2-14-2005

The most major change is the full support of 32-bit BMP files. So if you want to include transparency/alpha channel information, go for it! :-) I plan to update the user manual soon, and the sample code is also being updated with 32-bit support. -- Paul

Source Code Samples Updated
Posted on 2-11-2005

I just rewrote the samples webpage. Included are samples for resizing images, converting to greyscale, getting bitmap file and size information, and steganography: the hiding of information in image files. That's pretty cool, so have a look! :-) -- Paul

More sample code coming soon, and maybe a contest
Posted on 2-8-2005

I'm planning on adding some additional code samples soon, including a steganography example. (Hiding text in an image.) On a related note, I may make a contest to decode some images using the EasyBMP library to kick-start things. Stay tuned! :-)

Sample Code Additions
Posted on 2-5-2005

I updated the site, including direct links to the library and documentation downloads, a known compatibility page, and perhaps more importantly, some code samples. Those examples should help the EasyBMP beginners. :-)

First Release
Posted on 1-31-2005

Well,I'm still getting used to the file release system, but the first release is up. Please the DOWNLOADS link to get it. I plan to further update the site within the next couple of days. Thanks! -- Paul

Welcome!
Posted on 1-24-2005

Well, slowly but surely, I'm getting this site written up and uploaded. I'm going to double-check the library files and documentation one last time before I upload it and release it for good. :-) I hope to have everything posted by the end of the week.

I'm looking forward very much to any constructive criticism on my coding that can help my continued development. Any suggestions and comments are greatly appreciated. Although I've been using this library for more than a year and it appears to be bug-free and stable, I still consider it beta. In particular, I won't release a 1.0 until the library has seen some use and the user interfaces have been scrutinized and finalized. Let's start with 0.50. ;-)

Well, once again, thank you for looking! I hope you can find this useful! :-)