Forsaken possibilities:
Picture
with bitmap converted to format appropriate to write to file isn't stored for possible reuse after write()
. I can consider to store that.
There's hard to make production-quality error reporting in std::fstream
. So, now for all I/O errors ios::failure
is thrown, so results of some SRS test (namely "#10") execution are different from what they should be.
From SRS: "для того, чтоб быть доступным для чтения стандартными функциями C++" - no, there's place (libnebular-plugin-jpeg.cpp
) when C standart functions are used for I/O
Floating-point comparison in test-gtest.cpp
can fail
In Picture::readBm()
Often performance of this function will be slowest in library. So, here is worth trying to implement ability to interrupt operation ("progressive loading")? By use of callbacks which are called by plugin or with periodical returns in the course of plugin operation? NO, give up, it wasn't in the SRS.
Consider mobile device: couple bitmap loading and resize together NO, not in SRS. (Now there isn't resize at all.)
Can consider aligned malloc
(in Blob
) for ARM system NO
Resize? Who smooths (plugin/lib) and how? Nobody. Resize wasn't in SRS.
If i'd realize this, there'd be need in smoothimg primitive. It should be placed in Picture
.
Maybe, use libexif and so? Seems that "no" at now (not in SRS). But it might be easy?
Consider work with "property subtrees" - to allow
isSet("palette")
I can (that's very probable that i will) add more "get"ters and "set"ters here to e.g. set "default" properties, but they won't be something new and different from present.
DL library: load at demand
Failing exceptions thrown from shared library of ⟨libnebular-plugin-jpeg⟩
In Picture::write()
: somehow set up warning here about "pixel format" conversion
In plugins: handle errors, e.g. input errors. "File not found" errors, "read past the end" errors
OMG: There's "Boost GIL" library
Assumption that destructor of "libnebular-plugin-libjpeg" does its job OK when there's exception thrown
Harmonize names with analogous products (ImageMagick, Magick++; Boost GIL)
In libnebular-plugin-jpeg.cpp
, shield by libnebular::RawCExceptionLongJmp
not lonely functions but whole loops which use raw C code (from "libjpeg").