450289068 发表于 2013-11-6 10:19:00

关于txtextcontrol中图片像素的问题

求助版主一个问题。
因为业务需要在文档中需要插入影像图片,举个例子,我在图片需要展示的位置放入邮件合并域,然后通过代码将原有1024*768的图片,通过计算当前列宽twip的值换算为像素,然后通过确定列宽像素为图片缩放最小宽度来等比例缩放图片。 假如最后屏幕上显示的大小为300*400 。
ok。
我的问题:
1.此时图片是否已经失真?
2.根据我们的需要,结果应为像是在word中操作一样,当载入一个1024*768的图片,手动拖拽到一定显示大小,但是word是将原图像素点都存入到内存,在你打印是将原图打印到word中显示大小,像素不会失真。加入原图有100w像素,通过拖拽到400*300的图像显示大小时,像素是不会变化的。

求助:
txtextcontrol有没有对于图片操作的事件,或者调整显示大小,想word中zoom的概念。打印图片效果不失真。不然有没有其他解决办法来处理。
多谢

ZenosZeng 发表于 2013-11-6 12:07:00

TX中图片大小取决于你加载图片本身的大小,图片在缩放之后本身的大小没有改变(Height和Width属性),只是显示的比例发生了变化(HorizontalScaling和VerticalScaling属性)

450289068 发表于 2013-11-6 13:22:00

int Dpi_Pixels = Convert.ToInt32(OperationByron.getDpi_Pixels());//15
                int cellWidthPix = cell.Width / Dpi_Pixels;
                TXTextControl.Image DocImage = new TXTextControl.Image(img);
                int HorizonScaling = Convert.ToInt32(cellWidthPix * 100 / img.Width);
                int VerticalScaling = Convert.ToInt32((img.Height * cellWidthPix) * 100/ img.Width / img.Height);
                DocImage.HorizontalScaling = HorizonScaling;
                DocImage.VerticalScaling = VerticalScaling;
                //textControl1.Images.Add(DocImage, TXTextControl.HorizontalAlignment.Left, mergeField.Start-1, ImageInsertionMode.DisplaceCompleteLines);

那怎么知道缩放的比例我是这样实现的 ,这样的代码片段计算出来的图片缩放比例 总是不会达到将列宽撑满的现象,图片感觉好小
版主 你说的这两个属性 对于原图的像素不会有变化 而且不会失真吗?
那打印效果是出现全图 ?
还是缩放比例多大的图片?

450289068 发表于 2013-11-6 13:29:00

我是转换为像素然后计算百分比 可是这样出现的不能做到满意的显示大小。
还有 版主可以确认   DocImage.HorizontalScaling = HorizonScaling;
                DocImage.VerticalScaling = VerticalScaling;
这样的处理图片 只是处理了显示大小比例对于原图是无损像素的在内存中 打印的话不会出现失真,,我实验了下打印是按照显示比例打印的现在最担心的就是图片是否会失真。

450289068 发表于 2013-11-6 13:37:00

原图也在压缩包内,展示显示大小我给截图了麻烦看下
1.图片缩放比例算法如果不对 怎么让显示在列中可以达到美观的 85%~95% 居中显示图片。
2.这样的显示大小比例 ,打印出来的效果 是显示比例大小打印的 。具体会不会失真 。等版主给我答复 。呵呵
辛苦了斑竹。

450289068 发表于 2013-11-6 15:03:00

除了你提到的这这两个属性之外 还有么有处理图片的技术。
满足我附件中展示的区域,计算图片无失真缩放的方法。
???????????????????

ZenosZeng 发表于 2013-11-6 17:18:00

450289068 你好

通过代码片段里面部分代码我无法直接运行,你能给我发一个完整的示例演示该问题吗,这样我在调查问题和与厂商沟通过程也会跟快速一些。

450289068 发表于 2013-11-7 09:48:00





版主 你好 这是我的demo。
请教的问题
1.这样的缩放算法,设置属性,会不会产生图片失真。
2.jpg和bmp的图片处理方式一样 是否会图片失真。
3.显示大小是通过代码计算的,你上文说插入的图片是原图,只是显示大小发生变化,所以打印的是原图。所以不失真。。。我需要你的确认。
4.如果打印的话 代码这方面没有问题。是不是存在可能的问题是打印机硬件设备影响打印效果。

版主 辛苦了 麻烦确认下。

450289068 发表于 2013-11-7 10:05:00

不好意思 ,内容比较集中 ,追加一个问题。
关于licensed 问题
我现在是下载的19版本的 wpf 我的机子是安装了控件 并且引用了dll包 产生了licensed   。。那如果我发布之后 需要部署在客户机上。
1.直接部署可以不?
2.如果不行,需要安装控件还是需要将dll包 注册信息注册。
3.如果购买了正式版,,还需要在客户端安装?? 还是零安装到客户端 就可以直接使用 。
因为考虑到要给客户升级,所以需要详尽的说明来研究决定购买意向。

iceman 发表于 2013-11-7 11:26:00

回复 9楼450289068的帖子

1.可以直接部署。
3.不需要在客户端安装,可以直接把 Release 包发布到客户机上。

如果需要购买,销售相关事宜,请咨询葡萄城控件业务部-销售部
邮箱:Tool-Sales.cn@grapecity.com
电话:400-657-6008 / 029-88331988-600
联系人:Ruby
页: [1] 2 3 4
查看完整版本: 关于txtextcontrol中图片像素的问题