Hi, Thanks for your reply. On Tue, 07 Dec 2021 00:53:10 +0900, Ralph Little wrote: > Hi, > > On 2021-12-06 1:43 a.m., WATANABE Kazuhiro wrote: > > Hello, > > > > My Canon XK90 works fine with sane-pixma at all supported resolutions, > > up to 1200dpi. > > > > But on Windows XK90 is able to scan over 2400dpi. Canon says that the > > maximum optical resolution is 2400x4800dpi: > > > > > > https://ij.manual.canon/ij/webmanual/Manual/All/XK90%20series/JP/UG/ug-187.html > > (written in Japanese) > > > > Can I scan XK90 with sane-pixma at 2400dpi? > > > > It appears that some machines have a sub-image format at higher resolutions. > You could try this: > > Change line 1150 of pixma_mp150.x to: > > if (s->cfg->pid == MP600_PID || s->cfg->pid == MP600R_PID || > s->cfg->pid == XK90_PID) > > ...and add this around line 1190: > > || s->cfg->pid == XK90_PID > > > And let me know if this fixes the issue. > > Cheers, > Ralph
I've updated pixma_mp150.c with your advice and scanning at 2400dpi seems good. Great! The new scan images at 1200/2400dpi are here: https://drive.google.com/drive/folders/1Bt86fFiz-ekJaNoUglkxTsGniGQH3KeD scangear_{1200,2400}.png Scan with ScanGear on Windows (All enhancements turns off) scanimage_{1200,2400}.png Scan with scanimage I hope the same approach can apply for recent Canon inkjet MFPs such as the TS series... Regards, --- sane-backends-1.0.32/backend/pixma/pixma_mp150.c.orig 2021-02-14 20:25:19.000000000 +0900 +++ sane-backends-1.0.32/backend/pixma/pixma_mp150.c 2021-12-07 18:43:58.178291000 +0900 @@ -1147,7 +1147,8 @@ n = s->param->xdpi / 600; else n = s->param->xdpi / 2400; - if (s->cfg->pid == MP600_PID || s->cfg->pid == MP600R_PID) + if (s->cfg->pid == MP600_PID || s->cfg->pid == MP600R_PID + || s->cfg->pid == XK90_PID) n = s->param->xdpi / 1200; m = (n > 0) ? s->param->wx / n : 1; @@ -1188,7 +1189,8 @@ || s->cfg->pid == MP230_PID || s->cfg->pid == MX470_PID || s->cfg->pid == MX510_PID - || s->cfg->pid == MX520_PID)) + || s->cfg->pid == MX520_PID + || s->cfg->pid == XK90_PID)) reorder_pixels (mp->linebuf, sptr, c, n, m, s->param->wx, line_size); @@ -1916,7 +1918,7 @@ DEVICE ("Canon PIXMA G2060", "G2060", G2060_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS), DEVICE ("Canon PIXMA G3020", "G3020", G3020_PID, 0, 600, 0, 0, 638, 877, PIXMA_CAP_CIS), DEVICE ("Canon PIXMA TS7430 Series", "TS7430", TS7430_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS), - DEVICE ("Canon PIXUS XK90 Series", "XK90", XK90_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS), + DEVICE ("Canon PIXUS XK90 Series", "XK90", XK90_PID, 0, 2400, 0, 0, 638, 877, PIXMA_CAP_CIS), DEVICE ("Canon PIXMA TS8430 Series", "TS8430", TS8430_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS), DEVICE ("Canon PIXMA TR7600 Series", "TR7600", TR7600_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS | PIXMA_CAP_ADF), DEVICE ("Canon PIXMA TR8600 Series", "TR8600", TR8600_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS | PIXMA_CAP_ADF), -- WATANABE Kazuhiro ([email protected])
