atitit.java thumb生成高质量缩略图 php .net c++

1. 图像缩放(image scaling)---平滑度(smoothness)和清晰度(sharpness)
1

2. 图片缩放原理与opencv的处理方法 1

3. 最近邻插值(简单,不推荐) 2

4. 双线性插值 3

5.  三次卷积插值
3

6. java-image-scaling是一个开源高质量的图像缩略图类 4

7. Thumbnailator    百度8w 4

8. javashop中Jmagick缩略图生成组件及文档(jni) 5

8.1.1. javashop 5

9. atiThumb 5

10. 参考 6

1. 图像缩放(image scaling)---平滑度(smoothness)和清晰度(sharpness)

是指对数字图像的大小进行调整的过程。图像缩放是一种非平凡的过程,需要在处理效率以及结果的平滑度(smoothness)和清晰度(sharpness)上做一个权衡。

当一个图像的大小增加之后,组成图像的像素的可见度将会变得更高,从而使得图像表现得“软”。

相反地,缩小一个图像将会增强它的平滑度和清晰度。

放大用插值算法,缩小用中值算法

失真较小但是算法复杂,如双三次插值;有的运算量小但得到的图像失真较大,如最近邻插值和双线性插值。

进行缩小时候,图像缩小的比例越大,像素跃越现象越明显,显然会产生高频干扰。因此要使得图像不失真必须采用低通滤波的方式将这些高频干扰去除。实际上我们处理的时候是将做反变换和滤波同时进行

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. 图片缩放原理与opencv的处理方法

OPENCV提供的cvResize函数原型。

/****************************************************************************************************/

图像大小变换 

void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );

src 

输入图像. 

dst 

输出图像. 

interpolation 

插值方法: 

CV_INTER_NN - 最近邻插值, 

CV_INTER_LINEAR - 双线性插值 (缺省使用) 

CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法.. 

CV_INTER_CUBIC - 立方插值. 

函数 cvResize 将图像 src 改变尺寸得到与 dst 同样大小。若设定 ROI,函数将按常规支持 ROI.

/****************************************************************************************************/

3. 最近邻插值(简单,不推荐)

最简单的图像缩放算法就是最近邻插值。顾名思义,就是将目标图像各点的像素值设为源图像中与其最近的点。假设源图像的宽度和高度分别为w0和h0, 缩放后的目标图像的宽度和高度分别为w1和h1, 那

要将该图像放大两倍,可以有很多种算法,最简单的方法为邻域插值,即将每

图1 原图像

一个原像素原封不动地复制映射到扩展后对应四个像素中:

这种方法在放大图像的同时保留了所有的原图像的所有信息,但是会产生锯齿现象。

近邻取样插值缩放简单、速度快,但很多时候缩放出的图片质量比较差(特别是对于人物、景色等),

图片的缩放有比较明显的锯齿;使用二次或更高次插值有利于改善缩放效果;

4. 双线性插值

线性插值,就是如果放大的时候要在a1和a2之间插一个(或几个)新值,那么a=a1*r+a2*(1-r) 0<r<1。

所谓双线性,就是在x方向和y方向都做线性插值。



立方就是把这个公式换成3次多项式,会得到更平滑的效果。

  双线性插值作为OpenCV中默认使用的图像缩放算法,其效果和速度都是不错的。并且效果也比较稳定,计算复杂度并不算太高

“图像的双线性插值放大算法中,目标图像中新创造的象素值,是由源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的的情况。然而次算法具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。”

二次线性插值缩放出的图片很多时候让人感觉变得模糊(术语叫低通滤波),特别是在放大

的时候;使用三次卷积插值来改善插值结果;三次卷积插值考虑映射点周围16个点(4x4)的颜色来

计算最终的混合颜色,如图;

双线性插值的效果对于放大的图像而言较领域插值来得平滑,但是却使得图像变得模糊而且仍然会有一部分锯齿现象。

但是缩小的话用双线性插值即慢,效果又差(效果和另近点插值应该是一样的。)

5.  三次卷积插值

双三次插值更好比双线性插值更好。

到256色)图像的放大问题,效果最好的算法是hq2x算法或类似的缩放算法。这些算法将会产生锐边并保留大量的细节,其效果如下:

对于照片(以及有许多色阶的光栅图像)的缩放算法可以参看一种被称为超采样(supersampling)的反锯齿算法。[1] 如果是

如果是放大算法。。。只是插值还不够,还要反鋸齒

可以试试“三次卷积法”,不过比双线性插值还要慢,效果当然好的多了。



双线性插值只是参考了周围4个点,而三次卷积法参考的是周围16个点,运算过程中也没有低通效果,如果不是很在乎速度的情况下可以考虑。

如果

6. java-image-scaling是一个开源高质量的图像缩略图类

用imagescaling 生成缩略图 Java image scaling是一个高质量图片缩放的开源项目

百度为您找到相关结果约195个

ava-image-scaling  的效果好像也一样。。详见::java 缩略图 - 推酷.htm

7. Thumbnailator    百度8w

后还是thubnalatyor

不过这个

Thumbnails.of(dir+"\\all_r1_c2.jpg").scale(0.70f).outputQuality(1f)

.toFile(dir+"\\all_r1_c2_min3.jpg");

不过这个效果好像也有问题。。

原图640宽度。。缩小后脸蛋光滑。。而个540三,走不行兰...

8. javashop中Jmagick缩略图生成组件及文档(jni)

(2013-05-21 09:05:39)

转载▼

标签:

8.1.1.  href="http://search.sina.com.cn/?c=blog&q=javashop&by=tag" javashop

分类: 技术达人

Javashop默认使用javax.imageio.ImageIO 生成图片缩略图,您还可以选用ImageMagick 组件来生成缩略图

点击下面连接下载组件及文档

ImageMagick组件及文档

一、        安装ImageMagick-

这个马试达guo.

9. atiThumb

需要使用插值算法。下载下面两个类:javashop的俩个类。。

林吧,还是使用了atithumb..suprise,....这个效果的好ا..

prj。wechatAdm4prpt

JavaImageIOCreator creator = new JavaImageIOCreator(dir);

creator.crteteThumbnails(dir, 0.6f);

private void crteteThumbnail(String f1, String f2,

float scallPercet) {

10. photoshop使用的缩放算法以及调用ps来进行缩放

ps的算法集中综合几种高级算法了,效果很好,不开源的。。个人建议使用gui接口调用ps的功能来缩放,效果超好。。如果有api接口那就最好了。回复

11. 参考

java使用Thumbnailator操作图片 - kunkun378263的专栏 - 博客频道 - CSDN.NET.htm

使Javashop生成高清缩略图 - 技术交流区 - JavaShop网上商城技术支持论坛 - Powered by Discuz!.htm

图像缩放算法及速度优化 - 钰的日志 - 网易博客.htm

图像缩放_百度百科.htm

当今主流数字图像缩放技术的算法_Sunny_新浪博客.htm

atitit.thumb生成高质量缩略图 php .net c++ java的更多相关文章

  1. ASP.NET 画图与图像处理-生成高质量缩略图

    http://www.cftea.com/c/2007/08/SG9WFLZJD62Z2D0O.asp

  2. C#放缩、截取、合并图片并生成高质量新图的类

    原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using Syste ...

  3. (转)asp.net 高质量缩略图

    原文地址:http://www.cnblogs.com/Fooo/archive/2009/06/19/1506381.html using System.Drawing; ------------- ...

  4. C#生成高清缩略图

    /// <SUMMARY> /// 为图片生成缩略图 /// </SUMMARY> /// <PARAM name="phyPath">原图片的 ...

  5. C#生成高清缩略图的方法

    /// <summary> /// 为图片生成缩略图 /// </summary> /// <param name="phyPath">原图片的 ...

  6. C#生成高清缩略图 (装在自OPEN经验库)

    来源 http://www.open-open.com/lib/view/open1389943861320.html 代码如下实现图片的高清缩略图 /// <summary> /// 为 ...

  7. C#剪切生成高质量缩放图片

    /// <summary> /// 高质量缩放图片 /// </summary> /// <param name="OriginFilePath"&g ...

  8. StackOverflow 周报 - 高质量问题的问答(Java、Python)

    这是 Stack Overflow 第三周周报,本周加入了 Python 的内容,原计划两篇 Java.两篇 Python.但明天过节所以今天就先把周报发了,两篇 Java.一篇 Python.公众号 ...

  9. StackOverflow 周报 - 第四周高质量问题的问答(Java、Python)

    这是 Stack Overflow 第三周周报,由于本周周四外出,所以只有三篇内容.两篇 Java.一篇 Python.公众号「渡码」为日更,欢迎关注. DAY1. 枚举对象 == 和 equals ...

随机推荐

  1. Linux_Windows7使用VMare安装Centos6.5并使用Xshell连接Centos

      本文章主要是记录虚拟机安装Centos,并在windows使用xshell执行命令的过程,供自己和需要之人学习和使用.    难点主要在于windows和centos网络的设置,实现window连 ...

  2. Model工具

    Sybase PowerDesigner - 一个高端数据建模工具.你可以下载一个45天试用版. ERWin - 一个高端数据建模工具.可下载试用版. Rational Rose Enterprise ...

  3. 单击行,自己主动选中当前行中的单选框button

    需求:单击行,自己主动选中当前行中的单选框button. aspx页面: <asp:Repeater ID="rptRecordList" runat="serve ...

  4. 神经网络可以拟合任意函数的视觉证明A visual proof that neural nets can compute any function

    One of the most striking facts about neural networks is that they can compute any function at all. T ...

  5. 使用ssh向sqlserver2005数据库中保存image类型的二进制图片

    1.首先设计数据库表,其中photo.photo2字段均为image类型的. 2.建立实体bean对象,设置两个字段为byte[]如:private byte[] photo; private byt ...

  6. go语言基础之多个defer执行顺序

    1. 多个defer执行顺序 如果一个函数中有多个defer语句,它们会以LIFO(后进先出)的顺序执行.哪怕函数或某个延迟调用发生错误,这些调用依旧会被执.示例: package main //必须 ...

  7. delegate和event的区别 (zz)

    一. delegate C#代理实际上类似于C++中的函数指针,因为C#中不存在指针,所以用代理可以完成一些原来在C++中用函数指针完成的操作,例如传递一个类A的方法m给另一个类B的对象,使得类B的对 ...

  8. sqllite3

    OS X自从10.4后把SQLite这套相当出名的数据库软件,放进了作业系统工具集里.OS X包装的是第三版的SQLite,又称SQLite3.这套软件有几个特色: 软件属于公共财(public do ...

  9. (顺序表应用5.1.1)POJ 3750 小孩报数问题(基本的约瑟夫环问题:给出人数n,出发位置w,间隔数s)

    /* * POJ_3750.cpp * * Created on: 2013年10月30日 * Author: Administrator */ #include <iostream> # ...

  10. Report Studio中目录结构报表浅析

    一:场景:在一个报表中如果存在多个页面,每个页面显示不同的数据,如何通过目录控件实现对每一个报表的友好访问呢?下面我们就来看一下下面的效果,如下图1,2 图1:-------------------- ...