图片合成的方法

简介:

#region  图片合成
  
public   byte [] WritePic(ArrayList _al, int  _width, int  _height)
  {
   
// System.Collections.ArrayList;
    byte [] pic_by;
   System.IO.MemoryStream Ms,imgms;
   Bitmap bmp;
   System.Drawing.Image img0;
   
try
   {
    Ms
= new  System.IO.MemoryStream();
    bmp
= new  Bitmap(_width,_height);
    bmp.Save(Ms,System.Drawing.Imaging.ImageFormat.Jpeg);
    img0
= System.Drawing.Image.FromStream(Ms);
    
int  i_top = 0 ;
    
for ( int  pic_i = 0 ;pic_i < _al.Count;pic_i ++ )
    {
     Graphics gp
= Graphics.FromImage(img0);
     System.Drawing.Image img
= System.Drawing.Image.FromStream( new  System.IO.MemoryStream(( byte [])_al[pic_i]));
     Bitmap bmp1
= new  Bitmap(img);
     gp.DrawImage(bmp1,
new  System.Drawing.Rectangle( 0 ,i_top,bmp1.Width,bmp1.Height), 0 , 0 ,bmp1.Width,bmp1.Height,System.Drawing.GraphicsUnit.Pixel);
     i_top
+= bmp1.Height;
     gp.Dispose();
     img.Dispose();
     bmp1.Dispose();
    }
    imgms
= new  System.IO.MemoryStream();
    img0.Save(imgms,img0.RawFormat);
    imgms.Position
= 0 ;
    pic_by
= new   byte [imgms.Length];
    imgms.Read(pic_by,
0 ,pic_by.Length);
    Ms.Close();
    imgms.Close();
    bmp.Dispose();
    img0.Dispose();
    
return  pic_by;
   }
   
catch (Exception pic_e)
   {
    
//     WriteLog(DateTime.Now+"\t"+str_pz_wfbh+"\t图片合成失败"+pic_e.Message);
     return   null ;
   }
  }
  
#endregion
}




本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2008/03/08/1096559.html,如需转载请自行联系原作者

相关文章
|
小程序 JavaScript
微信小程序图片放大预览效果的实现,轮播图点击放大预览
微信小程序图片放大预览效果的实现,轮播图点击放大预览
1650 0
|
机器学习/深度学习 人工智能 自然语言处理
从此告别PPT制作的烦恼:ChatGPT和MindShow帮你快速完成
从此告别PPT制作的烦恼:ChatGPT和MindShow帮你快速完成
|
Ubuntu 网络协议 Linux
在Linux中,发行版和内核有什么区别?
在Linux中,发行版和内核有什么区别?
|
存储 Python
【Pyqt实战】1-100算式练习题自动生成器(含UI界面,python代码),可自行选择参数
【Pyqt实战】1-100算式练习题自动生成器(含UI界面,python代码),可自行选择参数
【Pyqt实战】1-100算式练习题自动生成器(含UI界面,python代码),可自行选择参数
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
6192 2
|
测试技术 Shell
MindIE LLM场景快速上手实验
MindIE是昇腾自研推理框架,本实验手册可指导小白用户快速掌握MindIE在LLM(large language model)场景的基本功能,包括:大模型推理功能测试、大模型性能测试、大模型精度测试、服务化推理部署、benchmark测试等。
1042 3
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
641 0
|
算法
真正理解拉格朗日乘子法和 KKT 条件
这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容。首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: $$ min \quad f(x) $$ 如果问题是$max \quad f(x)$ 也可以通过取反转化为求最小值 $min \quad-f(x)$,这个是一个习惯。
6139 0

热门文章

最新文章