Giter Club home page Giter Club logo

bmpsuite's Introduction

BMP Suite
Version 2.8

This is a set of Windows BMP image files, and a utility for generating them.
Many different varieties of BMP files are included, and are intended to be
useful for testing.

Copyright (C) 2012-2023 Jason Summers
<[email protected]>
https://entropymine.com/jason/bmpsuite/

Includes contributions by Matthieu Darbois.

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.


The ICC profiles in the "data" subdirectory are not covered by this license.
The swap-r-g.icc profile is the same one used in the MNG test-suite.

Image files generated by this program are not covered by this license, and are
in the public domain (except for the embedded ICC profiles).


Files in the "g" directory I consider to be "good": 
Your program should definitely support them if it claims to support BMP.

Files in the "q" directory I consider to be "questionable":
These may unusual or obsolete, or technically violate the documentation in some
way, or I may be unsure about their validity.

Files in the "b" directory I consider to be "bad":
These are clearly invalid or unreasonable. Make sure your program doesn't crash
when reading them.

The "x" directory contains files in formats related to BMP, that you might not
consider to truly be in "BMP format".

The individual BMP files are described in the html/bmpsuite.html file.

The generation utility is written in C, and is contained in the bmpsuite.c
file, and the files in the 'data' subdirectory. In a Unix-like environment,
type "make bmpsuite" to build the program, or just "make" to build and run it.
Run "make check" to verify that it writes the BMP files correctly.

The data/pal1huff.tif and data/pal1huff.g3 files were created essentially
as follows:
(Using Unix tools. 'convert' is from ImageMagick; 'tiffcp' and 'tiffinfo' are
from libtiff.)
$ convert g/pal1wb.bmp -flip -compress Fax -orient bottom-left -define tiff:photometric=min-is-white temp.tif
$ tiffcp -c g3:1d temp.tif data/pal1huff.tif
$ tiffinfo -s data/pal1huff.tif
  ...
  1 Strips:
      0: [       8,     2065]
$ tail -c +9 data/pal1huff.tif | head -c 2065 > data/pal1huff.g3

Then, append six "EOL" codes to the data. Assuming the raw fax data ends with
... a1 d0 e0, append these nine bytes: 02 00 20 02 00 20 02 00 20.
The problem is that this requires knowing what bit the data ended on. It should
always be safe to append 00 10 01 00 10 01 00 10 01, though this has the extra
complication of relying on a feature called "fill bits".

bmpsuite's People

Contributors

jsummers avatar mayeut avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.