亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? scaler.java

?? 純Java實(shí)現(xiàn)的對(duì)圖片進(jìn)行縮放
?? JAVA
字號(hào):
package com.botwave;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class Scaler {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// testMakeThuib();
		testResize();
		
		System.out.println("end");
	}

	public static void testResize() throws IOException {
		BufferedImage bi = ImageIO.read(new File("D:/mobilephone_pics/createStall2.bmp"));
		int dstWidth = 1120;
		int dstHeight = 1680;
		BufferedImage biRet = resize(bi.getWidth()/16, bi.getHeight()/16, bi);
		ImageIO.write(biRet, "png", new File(
				"D:/mobilephone_pics/temp2.png"));

		System.out.println("End1");

	}

	public static BufferedImage resize(int dstWidth, int dstHeight,
			BufferedImage oriBufImage) {
		BufferedImage biRet = new BufferedImage(dstWidth, dstHeight,
				BufferedImage.TYPE_3BYTE_BGR);
		boolean interpolate = true; // 插值模式
		int roiWidth = oriBufImage.getWidth();
		int roiHeight = oriBufImage.getHeight();
		int width = oriBufImage.getWidth();
		double srcCenterX = roiWidth / 2.0;
		double srcCenterY = roiHeight / 2.0;
		double dstCenterX = dstWidth / 2.0;
		double dstCenterY = dstHeight / 2.0;
		double xScale = (double) dstWidth / roiWidth;
		double yScale = (double) dstHeight / roiHeight;

		double xlimit = width - 1.0, xlimit2 = width - 1.001;

		if (interpolate) {
			// if (xScale<=0.25 && yScale<=0.25){
			// makeThumbnail();
			// return ;
			// }
			dstCenterX += xScale / 2.0;
			dstCenterY += yScale / 2.0;
		}

		double xs, ys;
		for (int y = 0; y <= dstHeight - 1; y++) {
			ys = (y - dstCenterY) / yScale + srcCenterY;

			for (int x = 0; x <= dstWidth - 1; x++) {
				xs = (x - dstCenterX) / xScale + srcCenterX;
				if (interpolate) {
					if (xs < 0.0)
						xs = 0.0;
					if (xs >= xlimit)
						xs = xlimit2;
					biRet.setRGB(x, y,
							getInterpolatedPixel(xs, ys, oriBufImage));
				}
			}
		}
		return biRet;
	}

	/**
	 * Uses bilinear interpolation to find the pixel value at real coordinates
	 * (x,y).
	 */
	private static final int getInterpolatedPixel(double x, double y,
			BufferedImage bi) {
		int xbase = (int) x;
		int ybase = (int) y;
		double xFraction = x - xbase;
		double yFraction = y - ybase;

		int lowerLeft = bi.getRGB((int) x, (int) y);
		// lowerLeft = lowerLeft << 8 >>> 8;
		int rll = (lowerLeft & 0xff0000) >> 16;
		int gll = (lowerLeft & 0xff00) >> 8;
		int bll = lowerLeft & 0xff;

		int lowerRight = bi.getRGB((int) x + 1, (int) y);
		// lowerRight = lowerRight << 8 >>> 8;
		int rlr = (lowerRight & 0xff0000) >> 16;
		int glr = (lowerRight & 0xff00) >> 8;
		int blr = lowerRight & 0xff;

		int upperRight = bi.getRGB((int) x + 1, (int) y + 1);
		// upperRight = upperRight << 8 >>> 8;
		int rur = (upperRight & 0xff0000) >> 16;
		int gur = (upperRight & 0xff00) >> 8;
		int bur = upperRight & 0xff;

		int upperLeft = bi.getRGB((int) x, (int) y + 1);
		// upperLeft = upperLeft << 8 >>> 8;
		int rul = (upperLeft & 0xff0000) >> 16;
		int gul = (upperLeft & 0xff00) >> 8;
		int bul = upperLeft & 0xff;

		int r, g, b;
		double upperAverage, lowerAverage;
		upperAverage = rul + xFraction * (rur - rul);
		lowerAverage = rll + xFraction * (rlr - rll);
		r = (int) (lowerAverage + yFraction * (upperAverage - lowerAverage) + 0.5);
		upperAverage = gul + xFraction * (gur - gul);
		lowerAverage = gll + xFraction * (glr - gll);
		g = (int) (lowerAverage + yFraction * (upperAverage - lowerAverage) + 0.5);
		upperAverage = bul + xFraction * (bur - bul);
		lowerAverage = bll + xFraction * (blr - bll);
		b = (int) (lowerAverage + yFraction * (upperAverage - lowerAverage) + 0.5);

		return 0xff000000 | ((r & 0xff) << 16) | ((g & 0xff) << 8) | b & 0xff;
	}

	public static void makeThumbnail() throws IOException {
		BufferedImage bi = ImageIO.read(new File("d:/test/ImageScaleTest.png"));

		int width2 = 300;
		int height2 = 300;
		float smoothFactor = 1f;
		BufferedImage biRet = new BufferedImage(width2, height2,
				BufferedImage.TYPE_3BYTE_BGR);

		int width = bi.getWidth();
		int height = bi.getHeight();
		int[] pixel = new int[3];
		int[] sum = new int[3];
		double xscale, yscale;
		int w, h;
		double product;
		xscale = (double) width / width2;
		yscale = (double) height / height2;
		w = (int) (xscale * smoothFactor);
		h = (int) (yscale * smoothFactor);
		product = w * h;

		for (int y = 0; y < height2; y++) {
			for (int x = 0; x < width2; x++) {
				for (int i = 0; i < 3; i++)
					sum[i] = 0;
				int xbase = (int) (x * xscale);
				int ybase = (int) (y * yscale);
				for (int y2 = 0; y2 < h; y2++) {
					for (int x2 = 0; x2 < w; x2++) {
						int val = bi.getRGB(xbase + x2, ybase + y2);
						val <<= 8;
						pixel[1] = val >>> 24;
						pixel[0] = (val << 8) >>> 24;
						pixel[2] = (val << 16) >>> 24;
						for (int i = 0; i < 3; i++)
							sum[i] += pixel[i];
					}
				}
				for (int i = 0; i < 3; i++)
					sum[i] = (int) (sum[i] / product + 0.5);
				int ret = 0xff;
				ret <<= 24;
				ret += sum[0] << 8;
				ret += sum[1] << 16;
				ret += sum[2] << 24;
				biRet.setRGB(x, y, ret);
			}
		}

		ImageIO.write(biRet, "jpg", new File(
				"d:/test/ImageScaleTestResoult.jpg"));
		System.out.println("End!");
	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美综合另类在线卡通| 成人a区在线观看| 欧美丰满美乳xxx高潮www| 国产精品日产欧美久久久久| 丁香另类激情小说| 亚洲婷婷综合久久一本伊一区| 懂色一区二区三区免费观看| 国产精品午夜电影| 一本一道波多野结衣一区二区| 亚洲久草在线视频| 欧美日韩一区二区三区在线看 | 久久久久成人黄色影片| 国产在线精品视频| 中文字幕一区在线观看视频| 91丝袜美腿高跟国产极品老师| 一区二区三区在线免费| 7777女厕盗摄久久久| 美女看a上一区| 日本一区二区三区久久久久久久久不 | 欧美精品99久久久**| 蜜臀精品一区二区三区在线观看 | 不卡av在线网| 亚洲va韩国va欧美va精品| 日韩欧美一级二级三级久久久 | 在线看不卡av| 日韩av电影天堂| 日本一区二区三区久久久久久久久不| 一道本成人在线| 蓝色福利精品导航| 国产精品三级在线观看| 欧美日韩免费观看一区三区| 国产在线播放一区三区四| 一区二区三区小说| 精品久久久久久久一区二区蜜臀| 成人av集中营| 看国产成人h片视频| 国产精品免费看片| 欧美一区三区二区| 99r精品视频| 精品在线亚洲视频| 一区二区免费在线播放| 久久久久久9999| 91.成人天堂一区| 色综合天天综合| 国产精品一区二区在线播放| 亚洲国产精品久久人人爱| 国产日韩欧美不卡| 日韩欧美一区二区免费| 色噜噜狠狠一区二区三区果冻| 国产主播一区二区三区| 天天综合色天天综合色h| 国产精品大尺度| 久久青草国产手机看片福利盒子| 欧美日韩国产在线观看| av福利精品导航| 国产乱人伦精品一区二区在线观看| 亚洲国产视频一区| 亚洲日本中文字幕区| 久久美女高清视频| 欧美日韩国产首页在线观看| 国产一区二区三区四区在线观看| 亚洲精品第1页| 欧美国产激情二区三区| 91精品国产一区二区三区蜜臀 | 日本高清无吗v一区| 国产一区二区美女| 亚洲va国产天堂va久久en| 国产精品国产成人国产三级 | 日韩一区二区三区免费看| 99国产精品久久久久久久久久久 | 麻豆国产精品视频| 一区二区三区影院| 中文字幕精品一区二区精品绿巨人| 久久综合久久综合九色| 69堂国产成人免费视频| 色婷婷综合久久久中文一区二区| 国产一区二区在线观看免费| 婷婷六月综合亚洲| 亚洲成人av中文| 一区二区成人在线| 国产精品久久久久影院| 久久理论电影网| 欧美一区二区视频在线观看| 欧美一二三区在线观看| 欧美久久久一区| 91麻豆6部合集magnet| 波波电影院一区二区三区| 国产精品亚洲成人| 国产传媒日韩欧美成人| 国产一区二区精品久久| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品午夜电影| 久久精品在这里| 精品电影一区二区| 欧美大片日本大片免费观看| 欧美一级视频精品观看| 欧美成人精品福利| 精品国产亚洲在线| 2023国产精品视频| 久久久久国产精品人| 国产女人18毛片水真多成人如厕 | 亚洲精品高清在线| 一区二区三区四区高清精品免费观看 | 亚洲第一二三四区| 日韩av一区二区在线影视| 麻豆成人91精品二区三区| 激情久久五月天| 国产乱子轮精品视频| 高清beeg欧美| 不卡视频一二三四| 在线观看亚洲专区| 欧美一区二区三区色| 日韩免费看网站| 欧美韩国日本综合| 一区二区视频免费在线观看| 日韩美女久久久| 午夜天堂影视香蕉久久| 国产精品系列在线观看| 91在线免费播放| 91精品国产色综合久久不卡电影 | 日韩精品一二三四| 久久精品999| 不卡欧美aaaaa| 欧美影片第一页| 日韩精品一区二区三区蜜臀| 国产亚洲欧美在线| 亚洲一区二区三区四区五区黄| 日韩精品一卡二卡三卡四卡无卡| 国产在线一区二区综合免费视频| 成人av动漫在线| 欧美精品三级在线观看| 精品国产一区二区三区久久影院| 亚洲美女视频在线观看| 午夜国产不卡在线观看视频| 国产乱子伦一区二区三区国色天香| www.日韩精品| 欧美一区二区三区在线视频| 久久老女人爱爱| 麻豆成人久久精品二区三区小说| 成人综合激情网| 欧美日本在线视频| 欧美国产日本韩| 日韩高清一区在线| www.激情成人| 日韩欧美二区三区| 综合网在线视频| 精品亚洲成av人在线观看| 99精品桃花视频在线观看| 日韩午夜精品视频| 亚洲卡通欧美制服中文| 国产伦理精品不卡| 91精品欧美久久久久久动漫| 久久精品一区二区三区不卡牛牛| 三级在线观看一区二区| 91麻豆国产香蕉久久精品| 久久中文字幕电影| 丝袜美腿成人在线| 一本色道久久综合亚洲91| 精品国产123| 日韩精品乱码免费| 不卡一区中文字幕| 中文字幕高清不卡| 韩国v欧美v日本v亚洲v| 在线不卡的av| 一区二区三区高清在线| 国产iv一区二区三区| 日韩小视频在线观看专区| 亚洲二区在线视频| 国产成人午夜视频| 国产精品色婷婷| 国产成人精品免费网站| 欧美精品一区二区久久久| 日韩专区欧美专区| 欧美日韩三级一区二区| 一区二区三区日韩在线观看| 国产成人自拍在线| 中文av一区特黄| 成人av综合在线| 国产精品人成在线观看免费| 极品少妇一区二区三区精品视频| 欧美一级欧美一级在线播放| 亚洲sss视频在线视频| 在线观看三级视频欧美| 日韩久久久久久| 国产成人av电影免费在线观看| 欧美成人vps| 精品一区二区三区免费| 精品免费99久久| 久久99久久久久久久久久久| 91精品国产综合久久蜜臀| 亚洲成人午夜影院| 亚洲精品一区二区三区99| 韩国欧美国产1区| 久久午夜电影网| 国产成人在线看| 亚洲视频网在线直播| 91色视频在线| 亚洲欧洲一区二区在线播放| 欧美三区免费完整视频在线观看| 天天操天天色综合|