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遊戲了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301227.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-30 16:08
下一篇 2024-12-30 16:08

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論