I can see on fl_draw_image_win32.cxx that this problem was taken in  
account for printing images but the solution isn't a good one:

     if (Fl_Surface_Device::surface() !=  
Fl_Display_Device::display_device()) {
       // if print context, device and logical units are not equal, so  
SetDIBitsToDevice
       // does not do the expected job, whereas StretchDIBits does it.
       StretchDIBits(fl_gc, x, y+j-k, w, k, 0, 0, w, k,
                    (LPSTR)((uchar*)buffer+(blocking-k)*linesize),
                    &bmi,
#if USE_COLORMAP
                    indexed ? DIB_PAL_COLORS : DIB_RGB_COLORS
#else
                    DIB_RGB_COLORS
#endif
                    , SRCCOPY );

I was looking at lazarus freepascal and they have function on their canvas  
StretchDraw that does the necessary transformation to adapt for different  
dpi resolution, on the code fragment shown above something around this  
problem was done.

Can someone give a better solution to this problem ?


> The actual printing capabilities of fltk is a great advance, but the  
> quality of image printing isn't all good because it's using screen  
> resolution to print, there is a way to allow higher resolutions for  
> printing ?
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to