- 浏览: 96043 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
grhglj:
能详细一点吗?都加到哪儿呀。
struts2.0中使用图形验证码 -
shingo7:
jotm哪来的2.3版
Spring引用Tomcat的 JTA事务 -
blogaaa:
这样配置完后,事务不能正常回滚,在同一个action中插入记录 ...
Spring引用Tomcat的 JTA事务
懒得多说,直接代码了。。。。
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import com.sun.media.imageioimpl.plugins.tiff.TIFFImageWriterSpi;
public class TiffTest {
public static void main(String[] args) throws IOException {
BufferedImage bi = ImageIO.read(new File("D:/images/00.jpg"));// 通过imageio将图像载入
int h = bi.getHeight();// 获取图像的高
int w = bi.getWidth();// 获取图像的宽
int[][] gray = new int[w][h];
for (int x = 0; x SW) {
int max = new Color(255, 255, 255).getRGB();
nbi.setRGB(x, y, max);
} else {
int min = new Color(0, 0, 0).getRGB();
nbi.setRGB(x, y, min);
}
}
}
TIFFImageWriterSpi tiffws = new TIFFImageWriterSpi();
ImageWriter writer = tiffws.createWriterInstance();
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionType("CCITT T.6");
param.setCompressionQuality(0f);
File outFile = new File("D:/images/二值化后_有压缩.tiff");
ImageOutputStream ios = ImageIO.createImageOutputStream(outFile);
writer.setOutput(ios);
writer.write(null, new IIOImage(nbi, null, null), param);
}
public static int getGray(int rgb) {
Color c = new Color(rgb);
int r = c.getRed();
int g = c.getGreen();
int b = c.getBlue();
int top = (r + g + b) / 3;
return (int) (top);
}
/**
* 自己加周围8个灰度值再除以9,算出其相对灰度值
* @param gray
* @param x
* @param y
* @param w
* @param h
* @return
*/
public static int getAverageColor(int[][] gray, int x, int y, int w, int h) {
int rs = gray[x][y] + (x == 0 ? 255 : gray[x - 1][y]) + (x == 0 || y == 0 ? 255 : gray[x - 1][y - 1])
+ (x == 0 || y == h - 1 ? 255 : gray[x - 1][y + 1]) + (y == 0 ? 255 : gray[x][y - 1])
+ (y == h - 1 ? 255 : gray[x][y + 1]) + (x == w - 1 ? 255 : gray[x + 1][y])
+ (x == w - 1 || y == 0 ? 255 : gray[x + 1][y - 1])
+ (x == w - 1 || y == h - 1 ? 255 : gray[x + 1][y + 1]);
return rs / 9;
}
/**
* 转换JPG图片文件格式为TIFF
* @param srcFile File 要转换格式的原文件
* @param resFile File 转换格式后的目标文件
* @throws IOException 抛出IO异常
*/
public static InputStream convertImageToTIFF() throws IOException {
long a = System.currentTimeMillis();
InputStream fis = pressImage();
ByteArrayOutputStream fos = new ByteArrayOutputStream();
TIFFEncodeParam encodeParam = new TIFFEncodeParam();
encodeParam.setCompression(TIFFEncodeParam.COMPRESSION_DEFLATE);
JPEGDecodeParam decodeParam = new JPEGDecodeParam();
ImageDecoder decoder = ImageCodec.createImageDecoder("JPEG", fis, decodeParam);
RenderedImage image = decoder.decodeAsRenderedImage();
ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF", fos, encodeParam);
encoder.encode(image);
InputStream is = new ByteArrayInputStream(fos.toByteArray());
System.out.println("convertImageToTIFF -- "+(System.currentTimeMillis() - a));
return is;
}
/**
* 转换ImageOutputStream 为byte[] */
public static byte[] getBytes(ImageOutputStream ios) throws Exception {
ByteArrayOutputStream bos = new ByteArrayOutputStream(255);
long counter = 0;
try {
ios.seek(0);
} catch (IOException e1) {
e1.printStackTrace();
}
while (true) {
try {
bos.write(ios.readByte());
counter++;
} catch (EOFException e) {
System.out.println("End of Image Stream");
break;
} catch (IOException e) {
System.out.println("Error processing the Image Stream");
break;
}
}
byte[] retValue = bos.toByteArray();
return retValue;
}
/**
* 合并图片 */
public final static InputStream pressImage() {
try {
long a = System.currentTimeMillis();
int x = 30;
int y = 50;
float alpha = 1f;
BufferedImage bufferedImage = createBufferedImage Graphics2D g = bufferedImage.createGraphics();
int width_1 = waterImage.getWidth(null);
int height_1 = waterImage.getHeight(null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
g.drawImage(waterImage, x, y, width_1 +100, height_1+100, null); // 水印文件结束
g.drawImage(waterImage, x+600, y, width_1 +100, height_1+100, null); // 水印文件结束
g.drawImage(waterImage, x+1100, y, width_1 +100, height_1+100, null); // 水印文件结束
g.drawImage(waterImage, x, y+600, width_1 +100, height_1+100, null); // 水印文件结束
g.drawImage(waterImage, x+600, y+600, width_1 +100, height_1+100, null); // 水印文件结束
g.dispose();
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, PICTRUE_FORMATE_JPG, os);
//File f = new File("D:/workspaceFlex/FlexTiff/src/assets/images/12.jpg");
//ImageIO.write(bufferedImage, PICTRUE_FORMATE_JPG, f);
InputStream is = new ByteArrayInputStream(os.toByteArray());
System.out.println("pressImage -- "+(System.currentTimeMillis() - a));
return is;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private static BufferedImage createBufferedImage() {
BufferedImage bimg = null;
try {
bimg = ImageIO.read(new File("D:/workspaceFlex/FlexTiff/src/assets/images/570119458887_20120907210013_b.tif"));
} catch (IOException e) {
e.printStackTrace();
}
return bimg;
}
private final static Image waterImage = createBufferedImage();
}
发表评论
-
Drools与Spring集成 登录测试
2013-07-12 15:27 0转至: http://justsee.iteye.com/b ... -
Drools入门-----------环境搭建,分析Helloworld
2013-07-12 15:20 0转至: http://justsee.iteye.com/b ... -
H2学习
2013-07-12 15:11 0package test.h2; import ja ... -
BlockingQueue队列学习
2013-10-17 10:16 808package test; import java ... -
一个多线程计算器的实现
2013-07-12 14:56 0package test; import java.util ... -
JRobin Core学习
2012-12-04 14:29 4147原文地址: http://www.micmiu.com/ent ... -
Memcached学习——(四)
2012-11-28 17:11 0原文地址: http://snowolf.iteye.com/ ... -
Memcached学习——(三)
2012-11-28 17:10 0原文地址: http://snowolf ... -
Memcached学习——(二)
2012-11-28 17:08 1010原文地址: http://snowolf.iteye.com/ ... -
Memcached学习——(一)
2012-11-28 17:07 1151原文地址: http://snowolf.iteye.com/ ... -
redis学习
2012-11-28 17:03 969原文地址:http://snowolf.iteye.com/b ... -
基于Spring可扩展Schema提供自定义配置支持(spring配置文件中 配置标签支持)
2012-11-28 16:55 834原文地址:http://www.cnblogs.com/jif ... -
全面掌握Java的异常处理机制
2009-03-05 17:17 1052你觉得自己是一个Java专 ... -
java.lang包概述
2009-03-05 17:02 133694.1. 接口 java.lang.Appendab ... -
select下拉列表动态显示选择公司及部门信息——级联
2008-11-25 12:29 1333//=================公司类方法======= ... -
人民币大小写转
2008-11-25 12:26 1166String HanDigiStr[] = new Strin ... -
身份证号转换15位与18位
2008-11-25 12:24 1635//开始 15位到18位的身份证号转换 //身份证号码由 ... -
使ApplicationResources.properties支持中文
2008-11-25 12:15 1345使ApplicationResources.propertie ... -
利用XMLBean轻轻松松读写XML
2008-11-25 12:11 971一、关于XML解析 XML在Java应用程序里变得越来越 ... -
JAVA获得网卡MAC地址
2008-11-25 12:06 1166package test; import java.io.B ...
相关推荐
### JAI处理TIFF, 图片转TIFF 在Java编程环境中,对于图像处理的需求非常常见,特别是当涉及到格式转换、图像压缩等高级操作时。本文将深入探讨如何使用Java Advanced Imaging (JAI) 工具包来处理TIFF文件,并实现...
总的来说,处理Tiff格式的图片在Java中主要依赖于像JAI这样的第三方库,通过这些库我们可以轻松地读取、转换和保存Tiff图像,满足不同场景的需求。当然,随着技术的发展,还有更多的图像处理库涌现出来,为开发者...
总之,JAI是一个强大的图像处理工具,特别适合处理复杂的图像转换任务,如将JPG、PNG和BMP图片转换为TIFF格式。通过使用JAI Core、Image I/O和Codec库,开发人员可以构建可靠且高效的图像处理程序,满足各种专业应用...
Java开发中的图片处理是一个重要的领域,特别是在构建图形用户界面或者进行图像分析的项目中。`jai_codec.jar`, `jai_core.jar`, 和 `mlibwrapper_jai.jar` 是Java Advanced Imaging (JAI) 库的一部分,这个库专门...
标题提到的"jai 图片处理 jai_codec.jar、jai_core.jar、mlibwrapper_jai.jar"是JAI的核心组件,用于支持特定的图像处理任务。 1. **jai_codec.jar**: 这个JAR文件包含了JAI的编解码器组件,用于处理多种图像格式,...
本篇文章将详细探讨如何利用Java与JAI-ImageIO库进行JPEG(jpg)与RAW格式图片之间的转换。 首先,让我们了解这两种图像格式。JPEG(Joint Photographic Experts Group)是一种广泛使用的有损压缩图像格式,适用于...
Java 图片处理库Java Advanced Imaging (JAI) 是一个强大的工具,用于在Java环境中进行复杂的图像操作和处理。这个库提供了丰富的功能,包括但不限于图片的读取、写入、旋转、缩放、颜色空间转换以及各种滤镜应用。...
2. **TIFF格式**:TIFF是一种灵活的位图格式,广泛用于专业图像处理,因为它支持多种压缩方式和色彩模式。在Java中处理TIFF图像,可能需要第三方库,如Apache Commons Imaging(旧称Apache Sanselan)或JAI(Java ...
在给定的压缩包中,有两个核心的JAR文件:`jai_codec-1.1.3.jar` 和 `jai_core.jar`,它们对于处理特定格式的图像,特别是 TIFF 图片到 JPG 的转换至关重要。 1. **jai_codec-1.1.3.jar**: 这个JAR文件包含了Java...
`jai_codec.jar`使得Java程序能够读取和写入这些复杂格式的TIFF图片,这对于进行图像处理和转换任务至关重要。 `jai_core.jar`则是JAI的核心库,包含了基本的图像处理功能和算法,比如几何变换、滤波、色彩空间转换...
总之,`jai-core`和`jai-codec`库是Java中处理图像转换的强大工具,特别是对于需要处理多种格式和进行复杂图像操作的项目。通过理解这两个库的使用,开发者可以更有效地进行图像处理,例如将高质量的TIFF图像转换为...
JAI支持多种图像格式,如JPEG、TIFF、PNG等,并且能够进行跨平台操作。它通过一系列可组合的操作符来实现复杂的图像处理任务,这些操作符可以串联起来形成一个处理流水线。 二、JAI的核心概念 1. **操作符...
JAI支持多种图像格式,如JPEG、PNG、BMP、TIFF等,这使得它在处理各种来源的图像时具有很高的灵活性。 在“jai demo的实例代码”中,我们可以期待看到以下几个关键知识点: 1. **图像读取**:JAI提供了`RenderedOp...
JAI工具,操作图片资源,java通过这个工具能将cmyk的bufferedImage生成tiff格式
JAI 中的 Image I/O Tools,支持更多图片类型,例如JPEG-LS, JPEG2000, 和 TIFF。 主页:https://jai-imageio.dev.java.net/。JAI 是一个关于图像处理的框架,很庞大, 其中仅仅jai-imageio是关于图像I/O的,其他的...
TIFF格式支持多种压缩算法,如无压缩、LZW、JPEG等,这个库可以帮助开发者选择合适的压缩方法,并将多张图片以TIFF格式保存。 在实际使用中,通过导入这两个JAR包,开发者可以编写Java代码来实现以下功能: - **...
在JAVA中处理TIFF文件,特别是进行多页合并的操作,需要借助特定的库,比如Apache Commons Imaging(以前称为Apache Sanselan)或者JAI (Java Advanced Imaging)。以下是一个基本的步骤概述: 1. **导入必要的库**...
- **广泛的图像格式支持**:能够处理包括JPEG, TIFF, PNG, BMP, GIF等多种图像格式。 - **图像操作**:提供了一系列的图像处理操作,如旋转、缩放、裁剪、颜色空间转换等。 - **流式处理**:允许对大型图像进行高效...
在Java编程环境中,JAI Codec库是处理图像文件格式的核心组件。它包含了对多种常见图像格式如JPEG、TIFF、PNG、BMP等的解码器和编码器。通过这个库,开发者可以轻松地读取、修改和保存这些格式的图像文件,极大地...
`jai_imageio-1.1-alpha.jar` 包含了JAI的核心组件,特别是图像I/O部分,允许开发者处理多种图像文件格式,如JPEG、PNG、TIFF等。JAI的Image I/O扩展了Java的标准I/O框架,使得处理图像文件变得更加方便。例如,你...