java图像处理的方法

项目需要调整图片服务器的解决方案,这次调整使用fastdfs存储小文件,也就是图片,因为现在还没有fastdfs的.net版的客服端,所以理所当然把处理图片放到了java这块,使用java来处理图片并且上传到fastdfs上以下是小编为大家搜索整理的java图像处理的方法,欢迎阅读!更多精彩内容请及时关注我们应届毕业生考试网!

图像剪切

对于一个已经存在的Image对象,要得到它的一个局部图像,可以使用下面的步骤:

//import java.awt.*;

//import java.awt.image.*;

Image croppedImage;

ImageFilter cropFilter;

CropFilter =new CropImageFilter(25,30,75,75);//四个参数分别为图像起点坐标和宽高,即CropImageFilter(int x,int y,int width,int height),详细情况请参考API

CroppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));

//如果是在Component的子类中使用,可以将上面的Toolkit.getDefaultToolkit().去掉。

//FilteredImageSource是一个ImageProducer对象。

图像缩放

对于一个已经存在的Image对象,得到它的一个缩放的Image对象可以使用Image的getScaledInstance方法:

Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT);//得到一个100X100的'图像

Image doubledImage=sourceImage. getScaledInstance(sourceImage.getWidth(this)*2,sourceImage.getHeight(this)*2, Image.SCALE_DEFAULT);//得到一个放大两倍的图像,这个程序一般在一个swing的组件中使用,而类Jcomponent实现了图像观察者接口ImageObserver,所有可以使用this。

//其它情况请参考API。

灰度变换

下面的程序使用三种方法对一个彩色图像进行灰度变换,变换的效果都不一样。一般而言,灰度变换的算法是将象素的三个颜色分量使用 R*0.3+G*0.59+B*0.11得到灰度值,然后将之赋值给红绿蓝,这样颜色取得的效果就是灰度的。另一种就是取红绿蓝三色中的最大值作为灰度值。java核心包也有一种算法,但是没有看源代码,不知道具体算法是什么样的,效果和上述不同。

/* GrayFilter.java*/

/*@author:cherami */

/*email:cherami@163.net*/

import java.awt.image.*;

public class GrayFilter extends RGBImageFilter {

int modelStyle;

public GrayFilter() {

modelStyle=GrayModel.CS_MAX;

canFilterIndexColorModel=true;

}

public GrayFilter(int style) {

modelStyle=style;

canFilterIndexColorModel=true;

}

public void setColorModel(ColorModel cm) {

if (modelStyle==GrayModel.CS_MAX) {

substituteColorModel(cm,new GrayModel(cm));

}

else if (modelStyle==GrayModel.CS_FLOAT) {

substituteColorModel(cm,new GrayModel(cm,modelStyle));

}

public int filterRGB(int x,int y,int pixel) {

return pixel;

}

}

/* GrayModel.java*/

/*@author:cherami */

/*email:cherami@163.net*/

import java.awt.image.*;

public class GrayModel extends ColorModel {

public static final int CS_MAX=0;

public static final int CS_FLOAT=1;

ColorModel sourceModel;

int modelStyle;

public GrayModel(ColorModel sourceModel) {

super(sourceModel.getPixelSize());

this.sourceModel=sourceModel;

modelStyle=0;

}

【java图像处理的方法】相关文章:

java 影像处理_java图像处理的方法相关推荐

  1. java桥_java 泛型--桥方法

    因为 java 在编译源码时, 会进行 类型擦除, 导致泛型类型被替换限定类型(无限定类型就使用 Object). 因此为保持继承和重载的多态特性, 编译器会生成 桥方法. 本文最后附录所有源码. P ...

  2. modifiers在JAVA中_Java Modifier.classModifiers方法代碼示例

    import java.lang.reflect.Modifier; //導入方法依賴的package包/類 /** * Returns a string describing this {@code ...

  3. java中位数_java 计算中位数方法

    最近工作需要 要求把python的代码写成java版本,python中有一个np.median()求中位数的方法,java决定手写一个 先说说什么是中位数: 中位数就是中间的那个数, 如果一个集合是奇 ...

  4. java 实例域_Java实例域初始化方法及顺序

    Java实例域初始化方式 1.构造器 public class Employee { private String name; private String gender; private int a ...

  5. java writebytes()_Java ObjectOutputStream writeBytes()方法与示例

    ObjectOutputStream类writeBytes()方法writeBytes()方法在java.io包中可用. writeBytes()方法用于将给定的字符串作为字节序列写入. writeB ...

  6. cdate在java中_Java Calendar.add方法代码示例

    本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...

  7. java 二义性_Java接口默认方法带来的问题分析【二义性问题】

    本文实例分析了Java接口默认方法带来的问题.分享给大家供大家参考,具体如下: 一 点睛 Java 8中,如果一个类实现两个或多个接口,即"变相"的多继承,但是若其中两个接口都包含 ...

  8. java控制台_JAVA控制台输入输出方法总结

    java的控制台输入输出有很多方法,此文分别对其进行介绍. 1.控制台的输入 关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法, ...

  9. arraylist java 排序_Java ArrayList排序方法详解

    由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...

最新文章

  1. arch linux 下安装 conan permissionError :[Erno 13] Permission denied
  2. 【收藏】wsl2 出现 Vmmem内存占用过大问题解决
  3. vue源码学习--vue源码学习入门
  4. [C++11]shared_ptr共享智能指针的初始化与使用
  5. 为何获得风险投资的公司多数倒闭了?
  6. mysql作为tidb从库配置
  7. python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
  8. SAP License:FICO重要概念(二)-附常用技巧
  9. python tablewidget 颜色_更改QTableWidget的默认选择颜色,并使其半透明
  10. mydbtest文档
  11. Linux重置mysql密码
  12. 思科网络学习笔记 | 路由概念
  13. 大一计算机课程ppt作业,《计算机应用基础》课程第4次作业-PPT操作题答案步骤...
  14. 操作系统的几种基本类型
  15. 不属于微型计算机的技术特标,计算机组成原理汇总
  16. SpringBoot框架DataSource多数据源配置
  17. Git ~ commit 规范
  18. 如何设置Mac电脑的DNS
  19. 去哪儿网2015春季校招笔试--回忆版
  20. 区块链推动食品安全走向新时代

热门文章

  1. 虚拟机中再安装虚拟化软件Xp以上
  2. linux下 cut 字符截取命令详解
  3. matlab做空间热扩散图,热扩散matlab实现
  4. 对我们来说,如何避免成为一个油腻的产品经理?
  5. sun.security.validator.ValidatorException
  6. 图像旋转(C语言实现)
  7. 华为S5700 S2700交换机 配置
  8. Pytest-html 报告内中文方法标题乱码
  9. biee java_CAS做单点登陆(SSO)——集成BIEE 11g
  10. 长链接转短链接的一次尝试