[sane-devel] xscanimage and 16bit - patch

mh crapsite@gmx.net
Thu, 11 Oct 2001 10:32:31 +0200


--Boundary-=_yGgxxpkLoRellNMPapqfWkHOPkMC
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hi,
while experimenting with 16bit/channel images, I found the following prob=
lem in
xscanimage:
When you scan such an image, xscanimage saves the image in P5/P6 raw PNM
format with the max color component set to 255. I think, this can't be re=
ad by
any application.
I'd like to suggest, that we set the max color component to 65535, like i=
t's
done already in scanimage. This format can at least be read by some apps =
like
Xv.=20
Another problem:
When you use xscanimage as a gimp plugin and try to scan a 16bit/channel =
image,
you get an error message. Nevertheless a new window pops up which display=
s only
garbage. I think, this could be avoided by checking for a valid bit depth=
 in
scan_start().
Please review the patch for xscanimage.c .

Bye
Michael





--Boundary-=_yGgxxpkLoRellNMPapqfWkHOPkMC
Content-Type: text/plain;
  name="xscanimage_16bit.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xscanimage_16bit.diff"

LS0tIHhzY2FuaW1hZ2Vfb3JpZy5jCVRodSBPY3QgMTEgMTA6MzA6NDYgMjAwMQorKysgeHNjYW5p
bWFnZS5jCVRodSBPY3QgMTEgMTE6MzQ6MzMgMjAwMQpAQCAtOTIzLDggKzkyMyw5IEBAIHNjYW5f
c3RhcnQgKHZvaWQpCiAJICAgIGNhc2UgU0FORV9GUkFNRV9SRUQ6CiAJICAgIGNhc2UgU0FORV9G
UkFNRV9HUkVFTjoKIAkgICAgY2FzZSBTQU5FX0ZSQU1FX0JMVUU6Ci0JICAgICAgZnByaW50ZiAo
c2Nhbl93aW4ub3V0LCAiUDZcbiMgU0FORSBkYXRhIGZvbGxvd3NcbiVkICVkXG4yNTVcbiIsCi0J
CSAgICAgICBzY2FuX3dpbi5wYXJhbS5waXhlbHNfcGVyX2xpbmUsIHNjYW5fd2luLnBhcmFtLmxp
bmVzKTsKKwkgICAgICBmcHJpbnRmIChzY2FuX3dpbi5vdXQsICJQNlxuIyBTQU5FIGRhdGEgZm9s
bG93c1xuJWQgJWRcbiVkXG4iLAorCQkgICAgICAgc2Nhbl93aW4ucGFyYW0ucGl4ZWxzX3Blcl9s
aW5lLCBzY2FuX3dpbi5wYXJhbS5saW5lcywKKyAgICAgICAgICAoc2Nhbl93aW4ucGFyYW0uZGVw
dGggPD0gOCkgPyAyNTUgOiA2NTUzNSk7CiAJICAgICAgYnJlYWs7CiAKIAkgICAgY2FzZSBTQU5F
X0ZSQU1FX0dSQVk6CkBAIC05MzIsOCArOTMzLDkgQEAgc2Nhbl9zdGFydCAodm9pZCkKIAkJZnBy
aW50ZiAoc2Nhbl93aW4ub3V0LCAiUDRcbiMgU0FORSBkYXRhIGZvbGxvd3NcbiVkICVkXG4iLAog
CQkJIHNjYW5fd2luLnBhcmFtLnBpeGVsc19wZXJfbGluZSwgc2Nhbl93aW4ucGFyYW0ubGluZXMp
OwogCSAgICAgIGVsc2UKLQkJZnByaW50ZiAoc2Nhbl93aW4ub3V0LCAiUDVcbiMgU0FORSBkYXRh
IGZvbGxvd3NcbiVkICVkXG4yNTVcbiIsCi0JCQkgc2Nhbl93aW4ucGFyYW0ucGl4ZWxzX3Blcl9s
aW5lLCBzY2FuX3dpbi5wYXJhbS5saW5lcyk7CisJCWZwcmludGYgKHNjYW5fd2luLm91dCwgIlA1
XG4jIFNBTkUgZGF0YSBmb2xsb3dzXG4lZCAlZFxuJWRcbiIsCisJCQkgc2Nhbl93aW4ucGFyYW0u
cGl4ZWxzX3Blcl9saW5lLCBzY2FuX3dpbi5wYXJhbS5saW5lcywKKyAgICAgICAoc2Nhbl93aW4u
cGFyYW0uZGVwdGggPD0gOCkgPyAyNTUgOiA2NTUzNSk7CiAJICAgICAgYnJlYWs7CiAJICAgIH0K
IAkgIHNjYW5fd2luLmhlYWRlcl9zaXplID0gZnRlbGwgKHNjYW5fd2luLm91dCk7CkBAIC05NTIs
NiArOTU0LDE1IEBAIHNjYW5fc3RhcnQgKHZvaWQpCiAgICAgICBzaXplX3QgdGlsZV9zaXplOwog
CiAgICAgICAvKiBXZSBhcmUgcnVubmluZyB1bmRlciB0aGUgR0lNUCAqLworICAgICAgLypDaGVj
ayB3aGV0aGVyIGJpdCBkZXB0aCBpcyBzdXBwb3J0ZWQgYnkgdGhlIEdpbXAqLworICAgICAgaWYg
KHNjYW5fd2luLnBhcmFtLmRlcHRoID4gOCkKKyAgICAgIHsKKyAgICAgICAgZ3NnX3NldF9zZW5z
aXRpdml0eSAoZGlhbG9nLCBUUlVFKTsKKyAgICAgICAgc25wcmludGYgKGJ1Ziwgc2l6ZW9mIChi
dWYpLCAiVGhlIEdpbXAgZG9lc24ndCBzdXBwb3J0IGltYWdlcyB3aXRoICVkIGJpdC9jaGFubmVs
LiIsCisJCSAgICAgICAgICAgICAgc2Nhbl93aW4ucGFyYW0uZGVwdGgpOworICAgICAgICBnc2df
ZXJyb3IgKGJ1Zik7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KIAogICAgICAgc2Nhbl93aW4u
dGlsZV9vZmZzZXQgPSAwOwogICAgICAgdGlsZV9zaXplID0gc2Nhbl93aW4ucGFyYW0ucGl4ZWxz
X3Blcl9saW5lICogZ2ltcF90aWxlX2hlaWdodCAoKTsK

--Boundary-=_yGgxxpkLoRellNMPapqfWkHOPkMC--