zoukankan      html  css  js  c++  java
  • 图片合成

    #region 图片合成

    /// <summary>
    /// 合成图片
    /// </summary>
    /// <param name="fileFoldUrl">文件夹url</param>
    /// <param name="fileName">文件名</param>
    /// <param name="_alMemo">要合成的每张图片的大小数组</param>
    /// <param name="_width">合成后的宽度</param>
    /// <param name="_height">合成后的高度</param>
    public void tphc(string fileFoldUrl, string fileName, ArrayList _alMemo, int _width, int _height)
    {
    byte[] tp = get_tphcMemo(_alMemo, _width, _height);

    this.view_picture(fileFoldUrl, fileName, tp);
    }

    /// <summary>
    /// 获取合成图片后的字节大小
    /// </summary>
    /// <param name="_al">要合成的每张图片的大小数组</param>
    /// <param name="_width">合成后的宽度</param>
    /// <param name="_height">合成后的高度</param>
    /// <returns>byte[]</returns>
    private byte[] get_tphcMemo(ArrayList _al, int _width, int _height)
    {
    //byte[]
    byte[] tp = null;

    //MemoryStream
    MemoryStream ms = null;
    MemoryStream imgms = null;

    //Bitmap
    Bitmap bmp = null;

    //image
    System.Drawing.Image img = null;

    //Graphics
    Graphics gp = null;

    try
    {
    ms = new MemoryStream();

    bmp = new Bitmap(_width, _height);

    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

    img = System.Drawing.Image.FromStream(ms);

    int i_top = 0;

    for (int pic_i = 0; pic_i < _al.Count; pic_i++)
    {
    if (pic_i == 3)
    break;

    gp = Graphics.FromImage(img);

    MemoryStream ms1 = new MemoryStream(((byte[])_al[pic_i]));

    System.Drawing.Image img1 = System.Drawing.Image.FromStream(ms1);

    Bitmap bmp1 = new Bitmap(img1);

    Rectangle rtl = new Rectangle(i_top, 0, bmp1.Width, bmp1.Height);

    gp.DrawImage(bmp1, rtl, 0, 0, bmp1.Width, bmp1.Height, GraphicsUnit.Pixel);

    i_top += bmp1.Width;

    ms1.Dispose();

    img1.Dispose();

    bmp1.Dispose();

    gp.Dispose();
    }

    imgms = new MemoryStream();

    img.Save(imgms, img.RawFormat);

    imgms.Position = 0;

    tp = new byte[imgms.Length];

    imgms.Read(tp, 0, Convert.ToInt32(imgms.Length));

    return tp;
    }
    catch (Exception ex)
    {
    throw new Exception(ex.Message);
    }
    }

    #endregion 图片合成

    /// <summary>
    /// 保存图片
    /// </summary>
    /// <param name="fileFoldUrl">文件夹url</param>
    /// <param name="fileName">文件名</param>
    /// <param name="zp">文件的字节数组</param>
    public void view_picture(string fileFoldUrl, string fileName, byte[] zp)
    {
    MemoryStream ms = new MemoryStream(zp);
    Bitmap btp = new Bitmap(ms);
    DirectoryInfo dti = new DirectoryInfo(fileFoldUrl);
    string fileUrl = fileFoldUrl + fileName + ".jpg";
    btp.Save(fileUrl);
    }

    Andorid手机开发
  • 相关阅读:
    JS基础的入口函数以及函数
    JS基础的数组
    JS基础的数学函数、日期时间函数、运算符和流程语句
    JS基础的引入、注释、变量、数据类型和输出语法
    CSS3的动画、弹性盒子和多媒体查询
    CSS3的颜色(RGBA)透明度、渐变颜色、图片、旋转和过渡
    CSS3边框、背景和字体
    java基础(九)---继续聊聊map
    java基础(八)---map
    java基础(七)--- set
  • 原文地址:https://www.cnblogs.com/yewei798/p/1985593.html
Copyright © 2011-2022 走看看