96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

在线可视化图片合成源码-Python数据可视化利器Matplotlib从入门到高级4

原创:找图网 2023-04-26 00:42:05
  • 两个Image上下排放,合成一张照片,求源码!急!

  • 两个Image上下排放,合成一张照片,求源码!急!

    #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);

    _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

    img = null;

    //Graphics

    Graphics gp = null;

    try

    {

    ms = new MemoryStream();

    bmp = new Bitmap(_width, _height);

    (ms, );

    img = (ms);

    int i_top = 0;

    for (int pic_i = 0; pic_i < _; pic_i++)

    {

    if (pic_i == 3)

    break;

    gp = (img);

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

    img1 = (ms1);

    Bitmap bmp1 = new Bitmap(img1);

    Rectangle rtl = new Rectangle(i_top, 0, , );

    (bmp1, rtl, 0, 0, , , );

    i_top += ;

    ();

    ();

    ();

    ();

    }

    imgms = new MemoryStream();

    (imgms, );

    = 0;

    tp = new byte[];

    (tp, 0, 32());

    return tp;

    }

    catch (Exception ex)

    {

    throw new Exception();

    }

    }

    #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";

    (fileUrl);

    }

  • python-pyQt5: 界面布局,实现可视化图片、视频处理工具

  • '>python-pyQt5: 界面布局,实现可视化图片、视频处理工具

    PGVA,我自己取名的小工具,用来处理图片合成、视频截取等小功能,方便处理图片和视频。

    主要界面的布局排版和布局

    该软件有5块部分组成, 左边的每个按钮点开是单独的一个个QWidget窗体,右边是一个堆叠布局。点击左边的功能按钮,切换右边的堆叠布局。

    布局图:

    左边下方有个垂直布局,这个是用来占位,为了让按钮局上方。

    该功能是处理多张图片合成gif动图

    合成输出和图片合成 这个区域处理起来有点麻烦,

    这里是表单布局,两行,第二行的标题部分是空串;下方的”图片合成“区域用一样的处理方式。控件先存到表单布局中,然后再依次放入垂直布局中。

    其他功能区域的布局图设计差不多的。

    left_place和right_place 这两块是用来占位,为了把操作区域居中。

    我给主窗体加了个状态栏,点击状态栏上的图标打开窗口

    界面总体的样式

  • Python数据可视化利器Matplotlib从入门到高级4

  • '>Python数据可视化利器Matplotlib从入门到高级4myjiaziimg

    2D曲线绘制是Matplotlib绘图的最基本功能,也是用得最多、最重要的绘图功能之一,本文开始详细介绍Matplotlib 2D曲线绘图功能。我的介绍主要以面向对象的编码风格为主,但会在文章的末尾附上相应的pyplot风格的源代码,供大家查阅、对比。我们先看一段代码:

    代码运行效果如下:

    这个绘图中我们没有作任何设置,一切交给Matplotlib处理。我们只是看到了绘制出的曲线的样子。但这与我们所想要的效果可能差异较大。所以我们还需要对图形进行一些自定义。

    不管我们想生成什么样的图形,在Matplotlib当中,大致都可以总结为三步:一是构造绘图用的数据(Matplotlib推荐numpy数据,本系列介绍Matplotlib绘图,暂不涉及numpy的相关内容,留待后续有空余时吧);二是根据数据的特点选择适当的绘图方法并绘制出数据的图形;第三步则是对绘制的图形进行自定义设置或者美化以达到满足我们获得精美的输出图形的要求。

    在上面的绘图中,我们仅仅做到了第二步,下面我们来进行一些自定义,而Matplotlib为此提供了非常丰富的功能。

    你可能最想先尝试一下换个颜色看看曲线是什么样的,这有很多种方法。首先,我们可以在绘制图形的时候直接指定它,我们把绘图的代码改成下面的样子:

    这里的 ‘r’ 是 “red”的简写,表示将曲线的颜色指定为红色。也可以写成下面的样子,这样可读性更高:

    plot 返回一个 Line2D 对象的列表,我们使用一个带有“ line1, ”的元组来解包,随后使用 set_color() 代码设置line1 曲线的颜色,请注意这里设置的颜色会覆盖 plot 绘图函数当中指定的颜色。上面三段代码各自独立运行之后的效果是一样的。如下:

    为了提高效率,Matplotlib模仿MATLAB支持常用颜色的单字母代码缩写。

    你还可以使用不区分大小写的十六进制 RGB 或 RGBA 字符串(如:'#0f0f0f'),或者不区分大小写的 X11/CSS4 颜色名称(如:'aquamarine'),以及来自 xkcd color survey 的不区分大小写的颜色名称(如:'xkcd:sky blue')等等。更为详细的颜色规范,你可以查阅官方文档。但对于Python办公而言,掌握这些应该已经足够了。

    与曲线颜色一样,线型和线宽也有多种方式来指定:

    这里我们最终指定的线宽为2.0磅,绘图函数当中指定的线宽被后续指定的属性值覆盖了。而线型在这里由set_linestyle()指定,其中“--”和“-.”都是Matplotlib中支持的线型,“--”表示虚线,而“-.”则是点划线。而Matplotlib默认的线型“-”实线,除此之外,Matplotlib还支持“:”点线。

    我们绘制曲线之前构造的数据点在曲线上也可以标记出来,这些标记点有不同的风格。同样可以以不同的方式来设置它:

    注意第一行代码当中的“r:o”字符串,它是一种简写形式,是将颜色、线型和标记点形状在一个字符串中同时设置的方式,其中的“r”表示红色,“:”表示点线,“o”表示标记点为大圆点。只有在颜色使用单字符代码时才可以像上面这样组合起来同时表示三个属性。默认情况下,标记点的颜色与线型颜色相同,但可以单独设置与曲线不同的颜色,不仅如此,标记点的边线颜色和中间填充颜色也都可以单独设置。上面第二行代码我们就使用set_markeredgecolor('b')将标记点边线颜色设置为了蓝色。与标记点设置相关的还有set_marker(设置标记点形状)、set_markeredgewidth(设置标记点边线宽度)、set_markerfacecolor(设置标记点中间的填充色)、set_markersize (设置标记点的大小)等。下面是我整理的Matplotlib支持的所有标记点形状。

    本文先介绍到此,后续进一步介绍坐标轴、图例和网格线的设置。最后附上本文pyplot风格的绘图代码:

    显然这种简单绘图pyplot风格要简洁一些,还是很有优势的。

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com