主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];

向下

打印时图像尺寸问题 找到类似的分支


Oleg Gashev   (2001-12-15 11:14) [0]

无法打印精确尺寸的图像。 它仍然无法正确打印。
我是这样 查找以英寸为单位的Bitmapa尺寸:
sx,sy:真实; ABitmap:= Image1.Picture.Bitmap; sx:= ABitmap.Width / GetDeviceCaps(image1.canvas.handle,LOGPIXELSX); sy:= ABitmap.Height / GetDeviceCaps(image1.canvas.handle,LOGPIXELSY);

现在,我在要打印的打印机上找到了以像素为单位的尺寸:
relwidth:=截断(GetDeviceCaps(Printer.canvas.handle,LOGPIXELSX)* sx); relheight:=截断(GetDeviceCaps(Printer.canvas.handle,LOGPIXELSY)* sy);

打印:
Printer.BeginDoc; DrawImage(Printer.Canvas,Rect(0,0,relWidth,relHeight),ABitmap); Printer.EndDoc;

DrawImage:
过程DrawImage(Canvas:TCanvas; DestRect:TRect; ABitmap:TBitmap); var Header,位:指针; 标题大小:红衣主教; 位大小:红衣主教; 开始 GetDIBSizes(ABitmap.Handle,HeaderSize,BitsSize); 标头:= AllocMem(HeaderSize); 位:= AllocMem(BitsSize); 试一试 GetDIB(ABitmap.Handle,ABitmap.Palette,Header ^,Bits ^); StretchDIBits(Canvas.Handle,DestRect.Left,DestRect.Top,DestRect.Right,DestRect.Bottom,0,0,ABitmap.Width,ABitmap.Height,Bits,TBitmapInfo(Header ^),DIB_RGB_COLORS,SRCC; 终于 FreeMem(Header,HeaderSize); FreeMem(Bits,BitsSize); 结束 结束

所有这些均以错误的尺寸打印。 错误在哪里?

真诚的,奥列格。



MrBeer   (2001-12-16 21:27) [1]

//打印位图X x Y毫米大小 程序PrintBM(B:TBitmap; x_mm,y_mm:双精度); var resx,resy:double; 开始 resx:= Printer.PageWidth / GetDeviceCaps(Printer.Handle,LOGPIXELSX); resy:= Printer.PageHeight / GetDeviceCaps(Printer.Handle,LOGPIXELSY); Printer.Canvas.StretchDraw(Rect(0,0,圆(x_mm * resx),圆(y_mm * resy)),B); 结束 //打印位图X x Y英寸大小 过程PrintBMInch(B:TBitmap; x_inch,y_inch:double); 开始 PrintBM(B,x_inch * 2.54,y_inch * 2.54); 结束



MrBeer   (2001-12-16 21:40) [2]

过程PrintSameSize(B:TBitmap); var scalex,scaley:double; 开始 scalex:= GetDeviceCaps(Printer.Handle,LOGPIXELSX)/ GetDeviceCaps(B.Canvas.Handle,LOGPIXELSX); scaley:= GetDeviceCaps(Printer.Handle,LOGPIXELSY)/ GetDeviceCaps(B.Canvas.Handle,LOGPIXELSY); Printer.Canvas.StretchDraw(Rect(0,0,圆(B.Width *缩放),圆(B.Height *缩放)),B); 结束



MrBeer   (2001-12-16 21:48) [3]

esli tak napisatj?
// ....
scalex:= GetDeviceCaps(Printer.Handle,LOGPIXELSX)/ GetDeviceCaps(GetDC(0),LOGPIXELSX); scaley:= GetDeviceCaps(Printer.Handle,LOGPIXELSY)/ GetDeviceCaps(GetDC(0),LOGPIXELSY);



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];

楼上





内存:0.55 MB
时间:0.023 c
7-22451年
德米特里
2001-09-23 12:36
2002.01.08
指令{$ I}


3-21981年
Termik
2001-12-06 08:22
2002.01.08
关于关键字段和IDENTITY


14-22397年

2001-11-10 18:49
2002.01.08
有没有人有世界的gif或jpg等高线图?


4-22480年
amamed_3071
2001-11-03 10:09
2002.01.08
打印到Epson打印机


3-21925年
Nailka
2001-12-04 16:16
2002.01.08
在Oracle中查找Long字段的问题





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法语
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 淡米尔文 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский