Browse Source

ÄnyImageImporter: recognize BMP header magic.

I needed to know the signature for a StbImageConverter test, so why not
add it here as well now that I managed to figure that out.
pull/527/head
Vladimír Vondruš 5 years ago
parent
commit
047c539a17
  1. 2
      doc/changelog.dox
  2. 3
      src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp
  3. 3
      src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h
  4. 3
      src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp
  5. 1
      src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt
  6. BIN
      src/MagnumPlugins/AnyImageImporter/Test/rgb.bmp

2
doc/changelog.dox

@ -342,7 +342,7 @@ See also:
@relativeref{Trade::AbstractImageConverter,doConvertToData()}, for example
when the implementation only neeeds to do a format detection based on file
extension
- Recognizing TIFF file header magic in @ref Trade::AnyImageImporter "AnyImageImporter"
- Recognizing BMP and TIFF file header magic in @relativeref{Trade,AnyImageImporter}
- @ref Audio::AnyImporter "AnyAudioImporter",
@relativeref{Trade,AnyImageImporter}, @relativeref{Trade,AnyImageConverter},
@relativeref{Trade,AnySceneImporter}, @relativeref{Trade,AnySceneConverter}

3
src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp

@ -162,6 +162,9 @@ void AnyImageImporter::doOpenData(Containers::ArrayView<const char> data) {
/* https://github.com/BinomialLLC/basis_universal/blob/7d784c728844c007d8c95d63231f7adcc0f65364/transcoder/basisu_file_headers.h#L78 */
if(dataString.hasPrefix("sB"_s))
plugin = "BasisImporter";
/* https://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header */
else if(dataString.hasPrefix("BM"_s))
plugin = "BmpImporter";
/* https://docs.microsoft.com/cs-cz/windows/desktop/direct3ddds/dx-graphics-dds-pguide */
else if(dataString.hasPrefix("DDS "_s))
plugin = "DdsImporter";

3
src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h

@ -58,7 +58,8 @@ tries to open the file with it. Supported formats:
- Basis Universal (`*.basis` or data with corresponding signature), loaded
with @ref BasisImporter or any other plugin that provides it
- Windows Bitmap (`*.bmp`), loaded with any plugin that provides `BmpImporter`
- Windows Bitmap (`*.bmp` or data with corresponding signature), loaded with
any plugin that provides `BmpImporter`
- DirectDraw Surface (`*.dds` or data with corresponding signature), loaded
with @ref DdsImporter or any other plugin that provides it
- Graphics Interchange Format (`*.gif`), loaded with any plugin that provides

3
src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp

@ -96,7 +96,8 @@ constexpr struct {
{"ICO", "pngs.ico", nullptr, "IcoImporter"},
{"DDS", "rgba_dxt1.dds", nullptr, "DdsImporter"},
{"DDS data", "rgba_dxt1.dds", fileCallback, "DdsImporter"},
{"BMP", "image.bmp", nullptr, "BmpImporter"},
{"BMP", "rgb.bmp", nullptr, "BmpImporter"},
{"BMP data", "rgb.bmp", fileCallback, "BmpImporter"},
{"GIF", "image.gif", nullptr, "GifImporter"},
{"PSD", "image.psd", nullptr, "PsdImporter"},
{"TIFF", "image.tiff", nullptr, "TiffImporter"},

1
src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt

@ -59,6 +59,7 @@ corrade_add_test(AnyImageImporterTest AnyImageImporterTest.cpp
image.tiff
pngs.ico
rgb.basis
rgb.bmp
rgb.hdr
rgb.png
rgb.tga

BIN
src/MagnumPlugins/AnyImageImporter/Test/rgb.bmp

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Loading…
Cancel
Save