kopia lustrzana https://gitlab.com/sane-project/backends
handle writing of lineart data
rodzic
0cc0b31f86
commit
948aa52e54
|
@ -118,8 +118,15 @@ sanei_genesys_write_pnm_file (char *filename, uint8_t * data, int depth,
|
||||||
filename, strerror (errno));
|
filename, strerror (errno));
|
||||||
return SANE_STATUS_INVAL;
|
return SANE_STATUS_INVAL;
|
||||||
}
|
}
|
||||||
|
if(depth==1)
|
||||||
|
{
|
||||||
|
fprintf (out, "P4\n%d\n%d\n", pixels_per_line, lines);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
fprintf (out, "P%c\n%d\n%d\n%d\n", channels == 1 ? '5' : '6',
|
fprintf (out, "P%c\n%d\n%d\n%d\n", channels == 1 ? '5' : '6',
|
||||||
pixels_per_line, lines, (int) pow (2, depth) - 1);
|
pixels_per_line, lines, (int) pow (2, depth) - 1);
|
||||||
|
}
|
||||||
if (channels == 3)
|
if (channels == 3)
|
||||||
{
|
{
|
||||||
for (count = 0; count < (pixels_per_line * lines * 3); count++)
|
for (count = 0; count < (pixels_per_line * lines * 3); count++)
|
||||||
|
@ -133,17 +140,25 @@ sanei_genesys_write_pnm_file (char *filename, uint8_t * data, int depth,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (depth==1)
|
||||||
|
{
|
||||||
|
pixels_per_line/=8;
|
||||||
|
}
|
||||||
for (count = 0; count < (pixels_per_line * lines); count++)
|
for (count = 0; count < (pixels_per_line * lines); count++)
|
||||||
{
|
{
|
||||||
if (depth == 8)
|
switch (depth)
|
||||||
{
|
{
|
||||||
|
case 8:
|
||||||
fputc (*(data + count), out);
|
fputc (*(data + count), out);
|
||||||
}
|
break;
|
||||||
else
|
case 16:
|
||||||
{
|
|
||||||
fputc (*(data + 1), out);
|
fputc (*(data + 1), out);
|
||||||
fputc (*(data), out);
|
fputc (*(data), out);
|
||||||
data += 2;
|
data += 2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fputc(data[count], out);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue