找回密码
 立即注册

QQ登录

只需一步,快速开始

16662003@qq.com

注册会员

1

主题

2

帖子

21

积分

注册会员

积分
21
  • 19

    金币

  • 主题

  • 帖子

最新发帖
16662003@qq.com
注册会员   /  发表于:2016-8-24 22:34  /   查看:3728  /  回复:4
1金币
急!生成条码或二维的时候如何得到Btimap格式,
关于条码/二维码的生成问题(write),生成条码或二维码的时候,得到的是RasterImage image,能否得到Bitmap
代码如下:


  // 开始生成
            using (RasterCodecs codecs = new RasterCodecs())
            {
                // 创建默认QR码设置
                BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR);

                // 将输入的文字变为UTF8
                byte[] buffer = Encoding.UTF8.GetBytes(this.textBox1.Text);

                // 设置给Data
                data.SetData(buffer);

                // 计算QR码大小
                writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, null);

                // 创建图片
                LeadRect pixels = data.Bounds.ToRectangle(resolution, resolution);
                using (RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)))
                {
                    // 将QR码写到一个白色的空白图片上
                    writer.WriteBarcode(image, data, null);

                    // 科隆图片,否则会被释放
                    this.rasterImageViewer1.Image = image.Clone();
                }
            }

4 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-8-25 10:16:15
沙发
回复 使用道具 举报
16662003@qq.com
注册会员   /  发表于:2016-8-25 12:24:17
板凳
gw0506 发表于 2016-8-25 10:16
https://www.leadtools.com/help/leadtools/v19/dh/to/webframe.html?platform=dotnet
ChangeToHBitmap
...

ChangeToHBitmap后得到的是IntPtr,这个IntPtr怎么得到Bitmap能告诉我下吗?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-8-25 16:25:53
地板
  1. Image destImage1 = RasterImageConverter.ConvertToImage(srcImage, ConvertToImageOptions.None)
  2. Bitmap map = new Bitmap(destImage1);
复制代码
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-8-25 17:36:00
5#
  1. public void ChangeToHBitmapExample()
  2. {
  3.    RasterCodecs codecs = new RasterCodecs();
  4.    IntPtr hbitmap;

  5.    // Load an image
  6.    using(RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 24, CodecsLoadByteOrder.BgrOrGray, 1, 1))
  7.    {
  8.       // Change to DDB
  9.       hbitmap = RasterImageConverter.ChangeToHBitmap(image);

  10.       // Dispose the image since it is unusable now
  11.    }

  12.    // Change the DDB to a new LEAD RasterImage
  13.    using(RasterImage image = RasterImageConverter.ChangeFromHBitmap(hbitmap, IntPtr.Zero))
  14.    {
  15.       // Save this image back to disk
  16.       codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_ChangeToHBitmap.bmp"), RasterImageFormat.Bmp, 24);
  17.    }

  18.    DeleteObject(hbitmap);

  19.    // Clean up
  20.    codecs.Dispose();
  21. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部