<div dir="ltr"><div>After some investigation (using SANE_DEBUG_EPKOWA="INFO"), I found this in the stderr of scanimage:</div><div><br></div><div>dip-obj.c:572: [epkowa][F] failed: require (8 == buf->ctx.depth)<br></div><div><br></div><div>With this line, scanimage crashed. For context, the file and line number referenced by this line lead to this function in backend/dip-obj.c of the iscan package:</div><div><br></div><div><br></div><div><span style="font-family:monospace,monospace">/*! \todo Add support for 16 bit color values (#816).<br> */<br>void<br>dip_apply_color_profile (const void *self, const buffer *buf,<br>                         const double profile[9])<br>{<br>  SANE_Int i;<br>  SANE_Byte *r_buf, *g_buf, *b_buf;<br>  double red, grn, blu;<br><br>  SANE_Byte *data;<br>  SANE_Int size;<br><br>  require (dip == self && buf && profile);<br>  require (8 == buf->ctx.depth);<br><br>  if (SANE_FRAME_RGB != buf->ctx.format)<br>    return;<br><br>  data = buf->ptr;<br>  size = buf->end - buf->ptr;<br><br>  for (i = 0; i < size / 3; i++)<br>  {<br>    r_buf = data;<br>    g_buf = data + 1;<br>    b_buf = data + 2;<br><br>    red =<br>      profile[0] * (*r_buf) + profile[1] * (*g_buf) + profile[2] * (*b_buf);<br>    grn =<br>      profile[3] * (*r_buf) + profile[4] * (*g_buf) + profile[5] * (*b_buf);<br>    blu =<br>      profile[6] * (*r_buf) + profile[7] * (*g_buf) + profile[8] * (*b_buf);<br><br>    *data++ = clamp (red, 0, 255);<br>    *data++ = clamp (grn, 0, 255);<br>    *data++ = clamp (blu, 0, 255);<br>  }<br>}</span><br><br></div><div><br></div><div>I might try to modify this function so it applies the color profile on 16-bit values too, but I need to research more. Is there a simple way to avoid it altogether?</div><div><br></div><div>Kind regards,</div><div>Camil<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 5, 2018 at 5:12 AM, Camil Băncioiu <span dir="ltr"><<a href="mailto:ioan.camil.bancioiu@gmail.com" target="_blank">ioan.camil.bancioiu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hello,</div><div><br></div><div>I have an Epson v370 which, due to a driver error, can only scan colors at 8-bit color depth in Linux (Fedora 27). When selecting 16-bit depth from the Xsane options and pressing "Scan", the scanner pauses as if it is sending data to the computer, while Xsane crashes. Note that 16-bit depth works with grayscale. I need 16-bit depth to work for color mode so I can scan film negatives, which is the sole reason I bought the scanner.<br></div><div><br></div><div>This topic has also been discussed in this mailing list: <a href="https://alioth-lists.debian.net/pipermail/sane-devel/2008-June/022224.html" target="_blank">https://alioth-lists.debian.<wbr>net/pipermail/sane-devel/2008-<wbr>June/022224.html</a> , where someone says that the driver assumes 8-bit color RGB, therefore it crashes when it receives 16-bit RGB. That person managed to fix this in a patch, but I couldn't find that specific patch.<br></div><div><br></div><div>I currently have the following packages installed:</div><div>iscan-2.30.2-2.x86_64</div><div>iscan-data-1.30.0-1.x86_64</div><div>

<p style="margin:0px;white-space:pre-wrap">iscan-plugin-perfection-v370-<wbr>1.0.0-2.x86_64</p>sane-backends-1.0.27-17<br></div><div>xsane version 0.999<br></div><div><br></div><div>I would have no issue modifying the source code myself, if I would know where to look. I already downloaded the source code packages for iscan and iscan-data from Epson. At a first glance, I think I should look into the iscan package, in the file backend/epkowa.c. Which function is the one receiving RGB data from the scanner?</div><div><br></div><div>Kind regards,</div><div>Camil<br></div><div><br></div><div><br></div></div>
</blockquote></div><br></div>