找回密码
 立即注册

QQ登录

只需一步,快速开始

leadcom

论坛元老

24

主题

96

帖子

2万

积分

论坛元老

积分
27812

活字格认证

leadcom
论坛元老   /  发表于:2015-7-24 10:25  /   查看:10958  /  回复:15
将一张PNG透明的图片插入到原像中,本身PNG图片是透明的,插入到图片中之后应该透明的部份应该显示原图像的颜色,但现在透明的部份变成了白色,而且图片上的文件还有些被黑色的块覆盖掉了,请问这个问题怎么解决?(jpg图片不存在这个问题)

1.原图,需要插入的图片。




2.粘贴后的图片。


执行代码:
ImageViewer.Floater = viewer.Image;
                ImageViewer.Floater.Transparent = true;
                ImageViewer.FloaterOpacity = 1.0;
                LeadMatrix MyMatrix = ImageViewer.ImageTransform;
                Matrix m = new Matrix((float)MyMatrix.M11, (float)MyMatrix.M12, (float)MyMatrix.M21, (float)MyMatrix.M22, (float)MyMatrix.OffsetX, (float)MyMatrix.OffsetY);
                Transformer t = new Transformer(m);

                Point FloaterPosition = new Point((int)ImageViewer.FloaterTransform.OffsetX, (int)ImageViewer.FloaterTransform.OffsetY);

                LeadMatrix floatertransform = ImageViewer.FloaterTransform;
                floatertransform.OffsetX = Point.Round(t.PointToLogical(Point.Empty)).X;
                floatertransform.OffsetY = Point.Round(t.PointToLogical(Point.Empty)).Y;
                ImageViewer.FloaterTransform = floatertransform;


3.确认后的最终效果。


执行代码:
             if (rivViewer.Image.HasRegion)
                 rivViewer.Image.MakeRegionEmpty();
             else if ((rivViewer.FloaterOpacity > 0.0) && (rivViewer.Floater != null))
             {
                 
                 DisableAllInteractiveModes(rivViewer);
                 rivViewer.InteractiveModes.BeginUpdate();

                 RegionInteractiveMode.IsEnabled = true;
                 rivViewer.InteractiveModes.EndUpdate();
                 rivViewer.CombineFloater(false);
                 rivViewer.Floater = null;
                 rivViewer.Refresh();
             }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

15 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-7-24 15:18:00
沙发
回复 1楼leadcom的帖子

你好,
这个问题我们已经重现了,正在处理中,有进一步结果反馈给你。
回复 使用道具 举报
leadcom
论坛元老   /  发表于:2015-7-24 16:09:00
板凳
好的,谢谢了,麻烦你了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-7-27 10:40:00
地板
回复 3楼leadcom的帖子

不客气,这是我们应该做的,有进一步结果会第一时间通知您,预计1~2个工作日会有进一步反馈。
回复 使用道具 举报
leadcom
论坛元老   /  发表于:2015-7-27 11:46:00
5#
麻烦了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-7-27 13:46:00
6#
回复 5楼leadcom的帖子

不客气,应该做的
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-7-29 10:58:00
7#
回复 5楼leadcom的帖子

你好,
请尝试通过以下代码合并图片:

  1.             RasterImage SrcImage, backImage;
  2.             RasterCodecs _codecs;

  3.             _codecs = new RasterCodecs();

  4.             SrcImage = _codecs.Load("..\\..\\1.png");
  5.             backImage = _codecs.Load("..\\..\\2.png");

  6.             ImageViewer iv = new ImageViewer();
  7.             iv.Floater =SrcImage;
  8.             iv.Floater.Transparent = true;
  9.             iv.FloaterOpacity = 1.0;

  10.             CombineCommand Combine = new CombineCommand();
  11.             Combine.DestinationRectangle = new LeadRect(25, 25, SrcImage.Width, SrcImage.Height);
  12.             Combine.SourcePoint = new LeadPoint(0, 0);
  13.             Combine.SourceImage = SrcImage;
  14.             Combine.Run(backImage);

  15.             this.imgViewer.Image = backImage.Clone();
复制代码


看能否解决你的问题。
谢谢
回复 使用道具 举报
leadcom
论坛元老   /  发表于:2015-7-30 12:04:00
8#
你好,我刚才测试了你给我的代码,还是行不通。
而且图片上还是有黑色的块覆盖了。



  1. rivViewer.Floater.Transparent = true;
  2.                              rivViewer.FloaterOpacity = 1.0;

  3.                              CombineCommand Combine = new CombineCommand();
  4.                              Combine.DestinationRectangle = new LeadRect(left, top, rivViewer.Floater.Width, rivViewer.Floater.Height);
  5.                              Combine.SourcePoint = new LeadPoint(0, 0);
  6.                              Combine.SourceImage = rivViewer.Floater;
  7.                              Combine.Run(rivViewer.Image);
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-7-30 13:34:00
9#
回复 8楼leadcom的帖子

能否请你把测试demo发到论坛查看?
回复 使用道具 举报
leadcom
论坛元老   /  发表于:2015-8-3 11:27:00
10#
我做了一个简单的Demo,你看一下问题所在。请多多指教

Demo下载地址:
http://pan.baidu.com/s/1bnwLhDl
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部