您的位置:

java疯狂,java疯狂讲义第五版pdf

本文目录一览:

如何在Java中进行图片剪裁 疯狂JAVA

package test;

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.geom.AffineTransform;

import java.awt.image.AffineTransformOp;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.nio.Buffer;

import javax.imageio.ImageIO;

import javax.imageio.stream.ImageOutputStream;

/**

 * 裁剪、缩放图片工具类

 * 

 * @author CSDN 没有梦想-何必远方

 */

public class ImgUtils {

/**

 * 缩放图片方法

 * 

 * @param srcImageFile

 *            要缩放的图片路径

 * @param result

 *            缩放后的图片路径

 * @param height

 *            目标高度像素

 * @param width

 *            目标宽度像素

 * @param bb

 *            是否补白

 */

public final static void scale(String srcImageFile, String result,

int height, int width, boolean bb) {

try {

double ratio = 0.0; // 缩放比例

File f = new File(srcImageFile);

BufferedImage bi = ImageIO.read(f);

Image itemp = bi.getScaledInstance(width, height, bi.SCALE_SMOOTH);// bi.SCALE_SMOOTH

// 选择图像平滑度比缩放速度具有更高优先级的图像缩放算法。

// 计算比例

if ((bi.getHeight()  height) || (bi.getWidth()  width)) {

double ratioHeight = (new Integer(height)).doubleValue()

/ bi.getHeight();

double ratioWhidth = (new Integer(width)).doubleValue()

/ bi.getWidth();

if (ratioHeight  ratioWhidth) {

ratio = ratioHeight;

} else {

ratio = ratioWhidth;

}

AffineTransformOp op = new AffineTransformOp(AffineTransform// 仿射转换

.getScaleInstance(ratio, ratio), null);// 返回表示剪切变换的变换

itemp = op.filter(bi, null);// 转换源 BufferedImage 并将结果存储在目标

// BufferedImage 中。

}

if (bb) {// 补白

BufferedImage image = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);// 构造一个类型为预定义图像类型之一的

// BufferedImage。

Graphics2D g = image.createGraphics();// 创建一个

// Graphics2D,可以将它绘制到此

// BufferedImage 中。

g.setColor(Color.white);// 控制颜色

g.fillRect(0, 0, width, height);// 使用 Graphics2D 上下文的设置,填充 Shape

// 的内部区域。

if (width == itemp.getWidth(null))

g.drawImage(itemp, 0, (height - itemp.getHeight(null)) / 2,

itemp.getWidth(null), itemp.getHeight(null),

Color.white, null);

else

g.drawImage(itemp, (width - itemp.getWidth(null)) / 2, 0,

itemp.getWidth(null), itemp.getHeight(null),

Color.white, null);

g.dispose();

itemp = image;

}

ImageIO.write((BufferedImage) itemp, "JPEG", new File(result)); // 输出压缩图片

} catch (IOException e) {

e.printStackTrace();

}

}

/**

 * 裁剪图片方法

 * 

 * @param bufferedImage

 *            图像源

 * @param startX

 *            裁剪开始x坐标

 * @param startY

 *            裁剪开始y坐标

 * @param endX

 *            裁剪结束x坐标

 * @param endY

 *            裁剪结束y坐标

 * @return

 */

public static BufferedImage cropImage(BufferedImage bufferedImage,

int startX, int startY, int endX, int endY) {

int width = bufferedImage.getWidth();

int height = bufferedImage.getHeight();

if (startX == -1) {

startX = 0;

}

if (startY == -1) {

startY = 0;

}

if (endX == -1) {

endX = width - 1;

}

if (endY == -1) {

endY = height - 1;

}

BufferedImage result = new BufferedImage(endX - startX, endY - startY,

4);

for (int x = startX; x  endX; ++x) {

for (int y = startY; y  endY; ++y) {

int rgb = bufferedImage.getRGB(x, y);

result.setRGB(x - startX, y - startY, rgb);

}

}

return result;

}

public static void main(String[] args) throws IOException {

File input = new File("input.jpg");

BufferedImage img = ImageIO.read(input);

cropImage(img, 10, 10, 20, 20);

File output = new File("output.jpg");

ImageIO.write(img, "jpg", output);

}

}

大家觉得初学者《疯狂Java讲义》怎么样

我见过特好的一本书,很值得买。全书大概有800页,javase的知识都涉及到,部分内容对新手有难度,没有编程基础不建议看。而且也不适合只想过java二级的,只适合打算在java领域深造的人群。至于大神的话,不用看se的书了吧。

疯狂java讲义学完什么水平

疯狂java讲义学完中等水平。疯狂java讲义是国人原创必读经典了,同样非常适合初学者。讲解内容细致全面,系统通俗,目录划分和查找非常方便,就算完全没有基础也可以学的没有什么压力,学完可以升级一个水平,达到中等水平。

学习JAVA,有什么书籍推荐

《疯狂java讲义》 这本书深入介绍了java编程的相关方面,这本书的内容有Java基本语法结构、面向对象特征、集合框架体系、 泛型、异常处理、GUI编程、JDBC数据库编程等等等。非常齐全,我有全套Java视频资料

《Head First Java》  这本书呢被亚马逊评为十大好书之一。《Head First Java》是本完整的面向对象程序设计和Java的学习指导。是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。

《深入理解Java虚拟机:JVM高级特性与最佳实践》  这本书的主要内容是如何独立地编译一个OpenJDK7,讲解了JVM的自动内存管理,分析了虚拟机的执行子系统,讲解了程序的编译与代码的优化,探讨了Java实现高效并发的原理。

《企业应用架构模式》 这本书适合做框架的人去看,如果你打算自己写一个ORM的话,这本书是一定要看的。

《Agile Java》中文版 《Agile Java》中文版以JDK5.0的语法为基础讲解,如果同学们要学习JDK5.0的新语法也不错。可以让你以最少的时间掌握 Java最重要的知识,同时培养出优秀的编程思路,我有全套Java视频资料

丛林也疯狂java怎么下载

1、首先请下载模拟器安装好,然后下载丛林也疯狂java安装包。

2、打开模拟器找到你下载好的安装包,右键选择使用模拟器安装此程序。

3、安装完毕后,我们点击模拟器的首页,就可以看到已经安装好的丛林也疯狂java游戏了。