精华内容
下载资源
问答
  • 图像缩放

    2020-07-15 21:03:19
    图像缩放就是将源图像中的像素点经过算法映射到目标图像的像素点的过程,即找出目标图像中的像素点Pd(Xd,Yd)对应的源图像的像素点Ps(Xs,Ys),然后将源图像像素点填充到对应到目标图像的像素点,最终形成目标...

    1、概念
    图像缩放就是将源图像中的像素点经过算法映射到目标图像的像素点的过程,即找出目标图像中的像素点Pd(Xd,Yd)对应的源图像的像素点Ps(Xs,Ys),然后将源图像像素点填充到对应到目标图像的像素点,最终形成目标图像。
    图像缩放包含:
    1)图像缩小;
    2)图像放大。
    如下图所示,假设,源图像的分辨率为SrcWidthSrcHeight,目标图像的分辨率为DstWidthDstHeight,则:
    源图像与目标图像宽的比例为:H_Factor = SrcWidth/DstWidth;
    源图像与目标图像高的比例为:V_Factor = SrcHeight/DstHeight;
    在这里插入图片描述
    任意分辨率的缩放,导致图像宽高的比例(H_Factor,V_Factor)有可能是小数,则由目标图像像素点坐标计算出的源图像像素点坐标不是整数。
    图像缩放的算法多种多样,下面主要介绍便于硬件实现的几个算法原理。

    2、最邻近点插值法
    假设,目标图像的像素点Pd(Xd,Yd),反向映射到源图像到像素点为Ps(Xs,Ys),则计算公式如下:
    Xs = H_Factor * Xd (0 ≤ Xd < DstWidth的整数)
    Ys = V_Factor * Yd (0 ≤ Yd < DstHeight的整数)
    如下图所示,假设Ps(Xs,Ys)位于下图中的红点位置,P(X0,Y0)、P(X1,Y1)、P(X2,Y2)、P(X3,Y3)为源图像坐标Ps(Xs,Ys)周围的四个像素点,如果:
    在这里插入图片描述
    则最临近点为P(X2,Y2),则将源图像像素点P(X2,Y2)的值插入到目标图像像素点Pd(Xd,Yd),作为该目标图像像素点的像素值。实际上最邻近点插值法采用四舍五入点方法来寻找最佳像素点。
    在这里插入图片描述
    优点:计算简单,硬件实现所需资源少;
    缺点:图像质量低,特别是放大低图像可能产生明显锯齿。

    最临近点插值算法C语言(浮点型):
    https://blog.csdn.net/xaydwy/article/details/107369917

    3、双线性插值法
    在最邻近点插值法点基础上,引入双线性插值法。
    如下图所示,由图像的特点可知:
    在这里插入图片描述
    由反向算法,目标图像坐标Pd(Xd,Yd)得出的源图像坐标为Ps(Xs,Ys),如下图所示,则:
    在这里插入图片描述
    将公式1带入到公式2,得出公式3:
    在这里插入图片描述
    由双线性插值算法,得出目标图像像素点Pd(Xd,Yd)的值为:
    Pd(Xd,Yd)= P(X0,Y0)d0d1 + P(X1,Y1)d2d1 + P(X2,Y2)d0d3 + P(X3,Y3)d2d3
    在这里插入图片描述
    优点:缩放后图像质量高,图像连续性好。计算量比最邻近点插值法稍复杂,但计算量不大,适合硬件实现;
    缺点:双线性插值具有低通滤波器的性质,高频分量受损,导致细节损失严重,缩放后图像可能在一定程度上变模糊。

    双线性插值算法C语言(浮点型):
    https://blog.csdn.net/xaydwy/article/details/107369785

    4、BiCubic卷积插值法
    双三次卷积插值法的理念类似于双线性插值法,只是双三次插值法采用周围16个像素点进行加权,且加权因子采用BiCubic函数构造。
    双三次卷积插值又称为立方卷积插值,该算法采用采样点周围16个采样点加权得到目标像素点。双三次卷积插值不仅考虑周围16个点数据值点影响,还考虑到各相邻点数据值变化的影响。该算法可以得到高分辨率图像更清晰的放大效果,但也导致运算量的增加。这种算法需选取插值基函数来拟合数据,本文采用的插值基函数(BiCubic)。
    BiCubic函数的形状如下图所示:
    在这里插入图片描述
    BiCubic函数的公式如下:
    在这里插入图片描述
    至于BiCubic函数为什么是这个样子,系数a=-0.5,请参看以下帖子:
    https://blog.csdn.net/zhaoguanghe/article/details/106567714
    https://blog.csdn.net/shiyimin1/article/details/80141333
    由最邻近点插值法,可知,根据目标图像的像素点坐标,计算出对应源图像的像素坐标,如下图所示,假设红点P(X,Y)为对应的源图像坐标点,坐标点X,Y可能有小数部分,假设:
    在这里插入图片描述
    则P(x’,y’)即为P(X1,Y1)坐标点。则采用X1-1、X1、X1+1和X1+2水平坐标点,Y1-1、Y1、Y1+1和Y1+2垂直坐标点,找出周围点16个采样点。如下图所示。对于超出源图像边界的像素点,采用图像相近的像素点代替。
    在这里插入图片描述
    由BiCubic函数可知,P(X0,Y0)的水平方向和垂直方向加权因子为:
    在这里插入图片描述
    同理,其他像素的水平方向和垂直方向加权因子为:
    在这里插入图片描述
    与双线性插值类似,则目标像素点Pd(Xd,Yd)的值为:
    在这里插入图片描述
    优点:图像质量高;
    缺点:计算量大。

    展开全文
  • 图像缩放
  • 图像缩放-源码

    2021-02-11 16:40:14
    图像缩放
  • Teorex iResizer mac版是一款macos上的图像缩放软件,使用这款Teorex iResizer可以缩小或放大图像,能非均匀的调整图像尺寸,突出图像特点而不会使图像失真。Teorex iResizer for mac(图像缩放软件)​...

    463fcceb77021acee54031b75e9389e2.png

    想把图片放大或者调成最佳尺寸吗?Teorex iResizer mac版是一款macos上的图像缩放软件,使用这款Teorex iResizer可以缩小或放大图像,能非均匀的调整图像尺寸,突出图像特点而不会使图像失真。

    Teorex iResizer for mac(图像缩放软件)www.macdown.com
    ba51394f693b3bc5dbd9941c6b6a6c33.png

    259bfda5b87f54f28579e4dd605d2a4f.png

    Teorex iResizer软件功能

    更改图像宽高比而不会失真

    智能缩放器(iResizer)允许您“固定”照片的纵横比。想要从4:3更改为16:9没问题,iResizer可以折叠图像,使其看起来仍然很自然,并保留原始图像的质量,完整性和精神!为了保留重要的对象,您只需选择它们并运行调整大小,其余的将自动完成。

    更改主要对象之间的间距

    太糟糕了!场景的主要对象被一个无聊的空白空间隔开。如果您可以更改构图,使两个对象彼此相邻-太好了!但是,如果不能,怎么办?好了,您仍然可以使用iResizer更改对象之间的间距。它轻轻地“折叠”图片,使不必要的间隔消失。您不需要任何精确的编辑;只需标记您想要靠近的两个物体,设置所需的分辨率并享受壮观的效果即可! 为Instagram创建方形图像而无需裁剪

    Instagram只接受方形照片,尝试上传数百张4:3照片可能会很麻烦。使用iResizer,您可以轻松地创建1:1照片,而无需分两步进行裁剪:首先,在照片上标记要保留的区域,然后运行Instagram调整大小!

    像折叠纸质照片一样从图像中删除对象

    愚蠢的人破坏了集体画像,背景残骸和垃圾,不需要的风景物体-使用iResizer使它们全部消失。该应用程序使您的照片变形,从而使不需要的对象与照片的其他部分重叠。这就像您要折叠纸质照片一样,但是带有数字图像。而且由于采用了智能算法,最终调整后的照片看起来完全自然,而该过程不需要任何特殊技能!

    b1629cbbd6a18e1a7faaa922daa1f691.png
    展开全文
  • FPGA图像缩放算法

    2018-11-27 15:37:28
    FPGA图像缩放算法;图像缩放算法的研究与FPGA设计(上海大学)
  • 紫光国微智慧芯片领导者Scaler(图像缩放),广泛应用于视频及图像处理领域,比如图像处理器、电视墙、LED显示屏等应用场景。紫光同创的scaler图像缩放方案采用双线性插值算法,具有缩放效果好,资源占用少的特点。...
    169ce5bd1a1dea4c5be7a43cf0aa9c81.png

    紫光国微

    智慧芯片领导者

    Scaler(图像缩放),广泛应用于视频及图像处理领域,比如图像处理器、电视墙、LED显示屏等应用场景。紫光同创的scaler图像缩放方案采用双线性插值算法,具有缩放效果好,资源占用少的特点。具体特性如下:

    • 双线性插值算法实现放大和缩小功能

    • 像素数据位宽可配置

    • 缓存行数可配置

    • 支持双向握手读写接口

    • 支持参数动态更新

    紫光同创PGL22G视频应用板,外挂一颗16bit的DDR3,PGL22G芯片内嵌DDR3硬核,速率可达800Mbps,总带宽为12.8Gbps,可满足1080P视频的一读一写操作。

    ac60db5552f391747ca089df1863f4b6.png▲紫光同创PGL22G视频应用板 基于PGL22G芯片的scaler图像缩放DEMO支持MIPI视频信号输入,通过scaler模块对视频数据进行放大和缩小,通过DDR进行视频缓存,通过HDMI对缩放后的图像进行显示。支持3种输出模式,分别为1920*1080/60Hz、1280*720/60Hz、640*480/60Hz,输入分辨率支持1920*1080、1280*720、960*540、640*480。用户可根据具体的输入输出分辨率,配置scaler参数,实现视频的放大和缩小。以下为演示视频:

    紫光同创scaler图像缩放方案演示

    目前,该方案已获得规模化应用,可充分满足新型显示、智慧安防、智慧城市等市场需求。感兴趣的客户,请联系紫光同创Sales和FAE获取更多详细信息,或联系:marketing@pangomicro.com  

    End

    RECOMMEND更多芯事中国首家!紫光芯攀上芯片安全认证“金字塔顶端”紫光芯为工业互联网提供芯片解决方案量子安全超级SIM卡首度亮相5G超级SIM卡获5G周年双料大奖

    371902bc1bc9a3dd6d65fbca7921079e.png

    展开全文
  • 主要介绍了C#数字图像处理之图像缩放的方法,涉及C#针对图像的缩放技巧,需要的朋友可以参考下
  • 易语言画板图像缩放源码,画板图像缩放,位图缩放画到画板,位图缩放,取内存位图句柄,画点_,取窗口全部设备场景_,释放设备场景_,无关位图创建到有关位图_,取字节集地址_,复制位图_,创建内存场景_,选入设备场景_,删除...
  • 插值实现图像缩放

    2017-04-09 17:40:52
    图像缩放的MATLAB实现
  • 1 图像缩放-resize() 2 图像旋转-getRotationMatrix2D(), warpAffine() 3 图像翻转- flip() 4 图像平移-warpAffine() 参考资料 图像几何变换有图像缩放、图像旋转、图像翻转和图像平移等。 1 图像缩放-...

    目录

    1 图像缩放- resize()

    2 图像旋转- getRotationMatrix2D(), warpAffine()

    3 图像翻转- flip()

    4 图像平移- warpAffine()

    参考资料


    图像几何变换有图像缩放、图像旋转、图像翻转和图像平移等。

     

    1 图像缩放- resize()

    图像缩放主要调用 resize() 函数实现,具体如下:

    result = cv2.resize(src, dsize[, result[. fx[, fy[, interpolation]]]])

    其中,参数

    src 表示原始图像;

    dsize 表示缩放大小;

    fx和fy 也可以表示缩放大小倍数,他们两个(dsize或fx/fy)设置一个即可实现图像缩放。例如:

    (1)result = cv2.resize(src, (160,160))

    (2)result = cv2.resize(src, None, fx=0.5, fy=0.5)

    图像缩放:设({x_0},{y_0})是缩放后的坐标,(x,y)是缩放前的坐标,{s_x} 和 {s_y} 为缩放因子,则公式如下:

                                                                           [{x_0}\text{ }{\text{ }}{y_0}\text{ }{\text{ }}1] = [x\text{ }{\text{ }}y\text{ }{\text{ }}1]{\text{ }}\left[ \begin{gathered} {s_x}\text{ }{\text{ }}0\text{ }\text{ }{\text{ 0}} \hfill \\ 0{\text{ }}\text{ }\text{ }{s_y}\text{ }{\text{ 0}} \hfill \\ {\text{0 }}\text{ }\text{ }0\text{ }\text{ }{\text{ 1}} \hfill \\ \end{gathered} \right]

     

    (1) cv2.resize(src, (200,100)) 设置的dsize是列数为200,行数为100

    result = cv2.resize(src, (200,100))

    代码如下:

    # encoding:utf-8
    import cv2
    import numpy as np
    
    # 读取图片
    src = cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    
    # 图像缩放
    result = cv2.resize(src, (200,100))
    print (result.shape)
    
    # 显示图像
    cv2.imshow("src", src)
    cv2.imshow("result", result)
    
    # 等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    运行结果如下图所示:

     

    (2)可以获取 原始图像像素\times乘以缩放系数 进行图像变换;

    result = cv2.resize(src, (int(cols * 0.6), int(rows * 1.2)))

     

    代码如下所示:

    # encoding:utf-8
    import cv2
    import numpy as np
    
    # 读取图片
    src = cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    rows, cols = src.shape[:2]
    print
    rows, cols
    
    # 图像缩放 dsize(列,行)
    result = cv2.resize(src, (int(cols * 0.6), int(rows * 1.2)))
    
    # 显示图像
    cv2.imshow("src", src)
    cv2.imshow("result", result)
    
    # 等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    运行结果如下图所示:

     

    (3)(fx,fy) 缩放倍数的方法对图像进行放大或缩小。

    result = cv2.resize(src, None, fx=0.3, fy=0.3)

     

    代码如下所示:

    # encoding:utf-8
    import cv2
    import numpy as np
    
    # 读取图片
    src =cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    rows, cols = src.shape[:2]
    print
    rows, cols
    
    # 图像缩放
    result = cv2.resize(src, None, fx=0.3, fy=0.3)
    
    # 显示图像
    cv2.imshow("src", src)
    cv2.imshow("result", result)
    
    # 等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    运行结果如下图所示:(按例比 0.3 \times 0.3 缩小)


     

    2 图像旋转- getRotationMatrix2D(), warpAffine()

    图像旋转:设 ({x_0},{y_0}) 是旋转后的坐标,({x},{y}) 是旋转前的坐标,({ m},{n}) 是旋转中心,a 是旋转的角度,({ left},{top}) 是旋转后图像的左上角坐标,则公式如下:

                                         [{x_0}\text{ }{\text{ }}{y_0}\text{ }{\text{ }}1] = [x\text{ }{\text{ }}y\text{ }{\text{ }}1]{\text{ }}\left[ \begin{gathered} \text{ }\text{ } 1\text{ }\text{ }\text{ }{\text{ }}0\text{ }\text{ }{\text{ 0}} \hfill \\ \text{ }\text{ }0{\text{ }} - 1\text{ }{\text{ 0}} \hfill \\ {\text{ - }}m\text{ }{\text{ }}n\text{ }{\text{ 1}} \hfill \\ \end{gathered} \right]{\text{ }}\left[ \begin{gathered} \cos a{\text{ }} - \sin a{\text{ }}0 \hfill \\ \sin a\text{ }\text{ }{\text{ }}\cos a\text{ }{\text{ }}0 \hfill \\ \text{ }\text{ }{\text{ }}0{\text{ }}\text{ }\text{ }\text{ }\text{ }\text{ }\text{ }0\text{ }\text{ }\text{ }{\text{ }}1 \hfill \\ \end{gathered} \right]{\text{ }}\left[ \begin{gathered} \text{ }\text{ }1\text{ }\text{ }\text{ }\text{ }{\text{ }}0\text{ }\text{ }{\text{ }}0 \hfill \\ \text{ }\text{ }0{\text{ }} \text{ }- 1\text{ }{\text{ }}0 \hfill \\ left\text{ }{\text{ }}top{\text{ }}\text{ }1 \hfill \\ \end{gathered} \right]

     

    图像旋转主要调用getRotationMatrix2D() 函数和 warpAffine() 函数实现,绕图像的中心旋转,具体如下:

    M = cv2.getRotationMatrix2D((cols/2, rows/2), 30, 1)

    其中,参数分别为:旋转中心、旋转度数、scale

    rotated = cv2.warpAffine(src, M, (cols, rows))

    其中,参数分别为:原始图像、旋转参数 和 原始图像宽高

     

    (1)旋转30度

    代码如下:

    # encoding:utf-8
    import cv2
    import numpy as np
    
    # 读取图片
    src =  cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    
    # 原图的高、宽 以及通道数
    rows, cols, channel = src.shape
    
    # 绕图像的中心旋转
    # 参数:旋转中心 旋转度数 scale
    M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 30, 1)
    # 参数:原始图像 旋转参数 元素图像宽高
    rotated = cv2.warpAffine(src, M, (cols, rows))
    
    # 显示图像
    cv2.imshow("src", src)
    cv2.imshow("rotated", rotated)

     

    运行结果如下图所示:

     

    (2)旋转90度

    代码如下:

    # encoding:utf-8
    import cv2
    import numpy as np
    
    # 读取图片
    src =  cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    
    # 原图的高、宽 以及通道数
    rows, cols, channel = src.shape
    
    # 绕图像的中心旋转
    # 参数:旋转中心 旋转度数 scale
    M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 90, 1)
    # 参数:原始图像 旋转参数 元素图像宽高
    rotated = cv2.warpAffine(src, M, (cols, rows))
    
    # 显示图像
    cv2.imshow("src", src)
    cv2.imshow("rotated", rotated)
    

     

    运行结果如下图所示:

     

    (3)旋转180度

    代码如下:

    # encoding:utf-8
    import cv2
    import numpy as np
    
    # 读取图片
    src =  cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    
    # 原图的高、宽 以及通道数
    rows, cols, channel = src.shape
    
    # 绕图像的中心旋转
    # 参数:旋转中心 旋转度数 scale
    M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 180, 1)
    # 参数:原始图像 旋转参数 元素图像宽高
    rotated = cv2.warpAffine(src, M, (cols, rows))
    
    # 显示图像
    cv2.imshow("src", src)
    cv2.imshow("rotated", rotated)
    

     

    运行结果如下图所示:


     

    3 图像翻转- flip()

    图像翻转在OpenCV中调用函数 flip() 实现,函数用法如下:

    dst = cv2.flip(src, flipCode)

    其中,参数:

    src 表示原始图像;

    flipCode 表示翻转方向,如果flipCode为0,则以X轴为对称轴翻转,如果fliipCode>0则以Y轴为对称轴翻转,如果flipCode<0则在X轴、Y轴方向同时翻转。

     

    代码如下:(注意一个窗口多张图像的用法

    # encoding:utf-8
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 读取图片
    img = cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    src = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    # 图像翻转
    # 0以X轴为对称轴翻转 >0以Y轴为对称轴翻转 <0X轴Y轴翻转
    img1 = cv2.flip(src, 0)
    img2 = cv2.flip(src, 1)
    img3 = cv2.flip(src, -1)
    
    # 显示图形 (注意一个窗口多张图像的用法)
    titles = ['Source', 'Image1', 'Image2', 'Image3']
    images = [src, img1, img2, img3]
    for i in range(4):
        plt.subplot(2, 2, i + 1), plt.imshow(images[i], 'gray')
        plt.title(titles[i])
        plt.xticks([]), plt.yticks([])
    plt.show()
    
    # 等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    运行结果如下图所示:(注意一个窗口多张图像的用法


     

    4 图像平移- warpAffine()

    图像平移:设 ({x_0},{y_0}) 是缩放后的坐标,({x},{y}) 是缩放前的坐标,{d_x},{d_y} 为偏移量,则公式如下:

                                                                 [{x_0}\text{ }{\text{ }}{y_0}\text{ }{\text{ }}1] = [x\text{ }{\text{ }}\text{ }y{\text{ }}\text{ }1]{\text{ }}\left[ \begin{gathered} \text{ }1{\text{ }}\text{ }\text{ }0\text{ }\text{ }{\text{ }}0 \hfill \\ \text{ }0\text{ }\text{ }{\text{ }}1\text{ }\text{ }{\text{ }}0 \hfill \\ {d_x}{\text{ }}\text{ }{d_y}{\text{ }}\text{ }1 \hfill \\ \end{gathered} \right]

     

    图像平移首先定义平移矩阵M,再调用 warpAffine() 函数实现平移,函数用法如下:

    M = np.float32([[1, 0, x], [0, 1, y]])

    shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

     

    代码如下:

    # encoding:utf-8
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 读取图片
    img = cv2.imread("lena.tiff", cv2.IMREAD_UNCHANGED)
    image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    # 图像平移 下、上、右、左平移
    M = np.float32([[1, 0, 0], [0, 1, 100]])
    img1 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
    
    M = np.float32([[1, 0, 0], [0, 1, -100]])
    img2 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
    
    M = np.float32([[1, 0, 100], [0, 1, 0]])
    img3 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
    
    M = np.float32([[1, 0, -100], [0, 1, 0]])
    img4 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
    
    # 显示图形
    titles = ['Image1', 'Image2', 'Image3', 'Image4']
    images = [img1, img2, img3, img4]
    for i in range(4):
        plt.subplot(2, 2, i + 1), plt.imshow(images[i], 'gray')
        plt.title(titles[i])
        plt.xticks([]), plt.yticks([])
    plt.show()
    

     

    运行结果如下图所示:


     

    参考资料

    [1] https://blog.csdn.net/Eastmount/article/details/82454335

    [2] Python+OpenCV图像处理

    展开全文
  • OpenCV图像缩放resize各种插值方式的比较

    万次阅读 多人点赞 2018-12-19 16:29:23
    OpenCV图像缩放resize各种插值方式的比较 目录 OpenCV图像缩放resize各种插值方式的比较 1. resize函数说明 2.各种插值方式的比较 2.1 INTER_NEAREST(最近邻插值) 2.2 INTER_CUBIC (三次样条插值) 2.3 ...
  • 图像缩放算法

    万次阅读 2016-03-30 22:23:07
    摘要:首先给出一个基本的图像缩放算法,然后一步一步的优化其速度和缩放质量; 高质量的快速的图像缩放 全文 分为:  上篇 近邻取样插值和其速度优化  中篇 二次线性插值和三次卷积插值  下篇 三次线性插值...
  • c++图像缩放

    千次阅读 2017-03-08 12:11:27
    c++图像缩放
  • 纯JavaScript实现的图像缩放
  • 开发环境为QT5.8+opencv3.2,主要实现了图像几何变换,包括图像平移,图像旋转,图像缩放
  • 摘要:基于FPGA硬件实现固定倍率的图像缩放,将2维卷积运算分解成2次1维卷积运算,对输入原始图像像素先进行行方向的卷积,再进行列方向的卷积,从而得到输出图像像素。把图像缩放过程设计为一个单元体的循环过程,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,857
精华内容 5,142
关键字:

图像缩放