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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? geotransform.java

?? 圖象編輯器
?? JAVA
字號:
package imageapp;

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;

public class GeoTransform {
	/** 雙線性插值*/
	protected static float biLinear(int d00, int d01, int d10, int d11, 
							 float p, float q) {
		return (1-q)*( (1-p)*d00+p*d01 ) + q*( (1-p)*d10+p*d11 );
	}
	
	public static BufferedImage horMirror(BufferedImage srcImage) {
		int width = srcImage.getWidth();
		int height = srcImage.getHeight();
		int srcRGBs[] = srcImage.getRGB(0, 0, width, height, null, 0, width);
		BufferedImage destImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		
		for(int j=0; j<height; j++) {
			destImage.setRGB(0, height-j-1, width, 1, srcRGBs, j*width, width);
		}	
		return destImage;
	}
	
	public static BufferedImage verMirror(BufferedImage srcImage) {
		int width = srcImage.getWidth();
		int height = srcImage.getHeight();
		int srcRGBs[] = srcImage.getRGB(0, 0, width, height, null, 0, width);
		BufferedImage destImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		
		for(int i=0; i<width; i++) {
			for(int j=0; j<height; j++) {
				destImage.setRGB(i, j, srcRGBs[j*width+width-i-1]);
			}
		}	
		return destImage;
	}
	
	public static BufferedImage scale(BufferedImage srcImage, float sx, float sy) {
		int srcWidth = srcImage.getWidth();
		int srcHeight = srcImage.getHeight();
		int srcRGBs[] = srcImage.getRGB(0, 0, srcWidth, srcHeight, null, 0, srcWidth);
		int destWidth = Math.round(srcWidth*sx);
		int destHeight = Math.round(srcHeight*sy);
		BufferedImage destImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
		
		int m, m1, n, n1;
		float x, y, p, q;
		int r, g, b;
		int p00[] = new int[3];
		int p01[] = new int[3];
		int p10[] = new int[3];
		int p11[] = new int[3];
		int tmp[] = new int[3];
		int rgb[] = new int[3];
	
		for(int j=0; j<destHeight; j++) {
			y = j/sy;	m = (int)y;		q = y-m;
			m1 = m+1 >= srcHeight ? m : m+1;
			for(int i=0; i<destWidth; i++) {
				x = i/sx;	n = (int)x;		p = x-n;
				n1 = n+1 >= srcWidth ? n : n+1;
				
				ImageUtil.decodeColor(srcRGBs[m*srcWidth+n], p00);
				ImageUtil.decodeColor(srcRGBs[m*srcWidth+n1], p01);
				ImageUtil.decodeColor(srcRGBs[m1*srcWidth+n], p10);
				ImageUtil.decodeColor(srcRGBs[m1*srcWidth+n1], p11);
				
				for(int k=0; k<3; k++) {
					rgb[k] = Math.round(biLinear(p00[k], p01[k], p10[k], p11[k], p, q));
				}
				destImage.setRGB(i, j, ImageUtil.encodeColor(rgb));
			}
		}
	
		return destImage;
	}
	
	public static BufferedImage rotate(BufferedImage srcImage, float af, boolean isResize) {
		int i, j;
		int m, m1, n, n1;
		float x, y, p, q;
		int r, g, b;
		int p00[] = new int[3];
		int p01[] = new int[3];
		int p10[] = new int[3];
		int p11[] = new int[3];
		int tmp[] = new int[3];
		int rgb[] = new int[3];
		
		int srcWidth = srcImage.getWidth();
		int srcHeight = srcImage.getHeight();
		int srcRGBs[] = srcImage.getRGB(0, 0, srcWidth, srcHeight, null, 0, srcWidth);
	
		float sinAF = (float)Math.sin(af);
		float cosAF = (float)Math.cos(af);
		
		// (1)求旋轉后圖像的尺寸
		float x0, y0;
		float ptX[] = new float[3], ptY[] = new float[3];//存放角點坐標(0,1) (1,0) (1,1)
		float minX, maxX, minY, maxY;
		if(isResize) {
			minX = 0; 		maxX = 0; 
			minY = 0; 		maxY = 0;
			ptX[0] = srcWidth-1;	ptY[0] = 0;
			ptX[1] = 0;				ptY[1] = srcHeight-1;
			ptX[2] = srcWidth-1;	ptY[2] = srcHeight-1;
			for(i=0; i<3; i++) {
				x = ptY[i]*sinAF+ptX[i]*cosAF;
				if(x < minX) minX = x;
				if(x > maxX) maxX = x;
				y = ptY[i]*cosAF-ptX[i]*sinAF;
				if(y < minY) minY = y;
				if(y > maxY) maxY = y;
			}	
			x0 = minX;		y0 = minY;
		}
		else {
			minX = 0; 		maxX = srcWidth-1; 
			minY = 0; 		maxY = srcHeight-1;
			ptX[0] = srcWidth/2;		ptY[0] = srcHeight/2;
			x = ptY[0]*sinAF+ptX[0]*cosAF;
			y = ptY[0]*cosAF-ptX[0]*sinAF;	
			x0 = x-srcWidth/2;
			y0 = y-srcHeight/2;
		}
		int destWidth = Math.round(maxX-minX+1);
		int destHeight = Math.round(maxY-minY+1);
		BufferedImage destImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
		
		// (2)旋轉圖像
		for(j=0; j<destHeight; j++) {
			for(i=0; i<destWidth; i++) {
				y = (i+x0)*sinAF + (j+y0)*cosAF;
				x = (i+x0)*cosAF - (j+y0)*sinAF; 
				m = (int)y;		n = (int)x;
				p = x-n;		q = y-m;		
	
				if(m >= 0 && m < srcHeight && n >= 0 && n < srcWidth) {
					m1 = m+1 >= srcHeight ? m : m+1;
					n1 = n+1 >= srcWidth ? n : n+1;
					ImageUtil.decodeColor(srcRGBs[m*srcWidth+n], p00);
					ImageUtil.decodeColor(srcRGBs[m*srcWidth+n1], p01);
					ImageUtil.decodeColor(srcRGBs[m1*srcWidth+n], p10);
					ImageUtil.decodeColor(srcRGBs[m1*srcWidth+n1], p11);
	
					for(int k=0; k<3; k++) {
						rgb[k] = Math.round(biLinear(p00[k], p01[k], p10[k], p11[k], p, q));
					}
					
				}
				else { for(int k=0; k<3; k++) rgb[k] = 255; }
				
				destImage.setRGB(i, j, ImageUtil.encodeColor(rgb));
			}
		}
		
		return destImage;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人牲a欧美精品| 日韩一区二区在线看| 国产一区二区三区四区五区美女| 亚洲一区在线电影| 亚洲特级片在线| 国产亚洲成年网址在线观看| 久久综合五月天婷婷伊人| 国产欧美一区在线| 欧美成人福利视频| 日韩三级在线观看| 欧美tk—视频vk| 久久嫩草精品久久久精品| 2021中文字幕一区亚洲| 欧美乱熟臀69xxxxxx| 欧美精品黑人性xxxx| 在线观看亚洲一区| 欧美日韩黄色影视| 欧美电视剧在线看免费| 久久亚洲一区二区三区明星换脸| 欧美xxxx在线观看| 日本一区二区综合亚洲| 国产精品国产三级国产有无不卡| 亚洲欧洲精品一区二区三区不卡| 亚洲老司机在线| 午夜精品久久久久久久久久| 日韩高清在线一区| 久久狠狠亚洲综合| 国产99久久久国产精品潘金| 9i在线看片成人免费| 欧美亚洲一区二区三区四区| 91精品国产入口| 欧美成人一区二区三区在线观看| 久久久一区二区三区捆绑**| **网站欧美大片在线观看| 亚洲精品中文字幕乱码三区| 视频在线观看国产精品| 国内精品写真在线观看| 暴力调教一区二区三区| 91丝袜美腿高跟国产极品老师 | 国产麻豆9l精品三级站| 国产电影精品久久禁18| 99久久99久久综合| 欧美日韩久久久| 久久综合色播五月| 樱花影视一区二区| 免费一级片91| 成人污视频在线观看| 欧美日韩另类国产亚洲欧美一级| 亚洲精品一区二区三区福利 | 韩日精品视频一区| 成人精品小蝌蚪| 欧美丰满少妇xxxbbb| 国产亚洲va综合人人澡精品| 亚洲成人自拍偷拍| 国产盗摄视频一区二区三区| 欧美日韩国产首页| 亚洲国产高清在线观看视频| 午夜视频一区在线观看| 成人中文字幕在线| 在线播放欧美女士性生活| 欧美女孩性生活视频| 精品国精品自拍自在线| 国产精品免费视频观看| 亚洲午夜久久久久久久久电影网| 国产九色sp调教91| 欧美日精品一区视频| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲欧美另类小说| 看片的网站亚洲| 在线看国产一区二区| 国产欧美一区二区在线| 免费欧美日韩国产三级电影| 91丝袜国产在线播放| 日韩欧美一区在线观看| 亚洲男帅同性gay1069| 国产激情偷乱视频一区二区三区| 91精品婷婷国产综合久久| 亚洲欧洲成人av每日更新| 麻豆精品一二三| 91美女福利视频| 国产精品色哟哟| 国产精品一区二区久久精品爱涩 | 国产ts人妖一区二区| 欧美一级电影网站| 国产欧美一区二区精品忘忧草| 日本美女一区二区三区视频| 亚洲国产精品精华液2区45| 93久久精品日日躁夜夜躁欧美| 亚洲日本护士毛茸茸| 韩国一区二区三区| 555夜色666亚洲国产免| 国产综合久久久久久鬼色| 国产亚洲成av人在线观看导航| 国产高清不卡二三区| 久久久精品综合| 欧美日韩不卡一区二区| 国产综合色在线| 亚洲国产成人一区二区三区| 欧美日韩精品免费| 日本成人中文字幕在线视频| 久久综合色一综合色88| 国产成人精品影视| 亚洲成av人综合在线观看| 国产日韩视频一区二区三区| 国产精品夜夜爽| 亚洲男人的天堂网| 久久夜色精品一区| 国产91精品一区二区麻豆亚洲| 一区二区三区 在线观看视频| 欧美精品三级日韩久久| 婷婷国产在线综合| 日韩精品一区二区三区三区免费| 国产一区二区视频在线播放| 精品国产一区二区在线观看| 成年人网站91| 亚洲一区二区三区四区不卡| 精品久久国产字幕高潮| 国产真实乱对白精彩久久| 中文字幕中文乱码欧美一区二区| 日韩色在线观看| jlzzjlzz欧美大全| 国产在线精品一区二区三区不卡| 亚洲人成伊人成综合网小说| 精品美女在线播放| 日韩一卡二卡三卡国产欧美| 成人动漫一区二区三区| 免费精品99久久国产综合精品| 麻豆成人av在线| 久久久99精品久久| 欧美不卡一区二区三区四区| 日韩精品在线一区| 日韩欧美资源站| 亚洲不卡在线观看| bt7086福利一区国产| 亚洲日本va午夜在线电影| 在线观看日韩一区| 久久国产精品色| 国产精品国模大尺度视频| 色婷婷精品久久二区二区蜜臀av | 色综合视频在线观看| 亚洲一区二区免费视频| 欧美刺激脚交jootjob| 国产1区2区3区精品美女| 伊人夜夜躁av伊人久久| 欧美一卡2卡3卡4卡| 大美女一区二区三区| 亚洲一区在线观看视频| 久久综合视频网| 欧洲精品一区二区三区在线观看| 日日骚欧美日韩| 国产日韩综合av| 555www色欧美视频| 成人午夜精品一区二区三区| 亚洲成人精品一区二区| 久久人人超碰精品| 在线观看一区二区精品视频| 国产在线精品免费av| 亚洲一级二级三级在线免费观看| 久久久蜜臀国产一区二区| 欧美中文字幕久久| 成人在线视频一区| 日韩av中文字幕一区二区三区| 欧美高清在线视频| 91麻豆精品91久久久久久清纯| 成人h动漫精品一区二区| 日韩影院免费视频| 亚洲天堂免费看| 2023国产一二三区日本精品2022| 在线免费观看成人短视频| 国产成人免费av在线| 免费成人小视频| 亚洲激情校园春色| 久久女同性恋中文字幕| 制服丝袜日韩国产| 色综合久久66| 成人一区二区三区| 久久er精品视频| 午夜精品久久久久影视| 依依成人精品视频| 国产精品成人午夜| 久久人人爽爽爽人久久久| 欧美一卡二卡三卡四卡| 欧美性猛交xxxx黑人交| 99久久精品99国产精品| 国产一区二区在线影院| 日本不卡一区二区三区| 亚洲一区二区三区视频在线 | 黄色小说综合网站| 午夜激情久久久| 亚洲激情欧美激情| 国产精品福利一区| 国产日韩欧美不卡在线| 2023国产精华国产精品| 精品美女一区二区三区| 91精品欧美久久久久久动漫| 欧美日韩一区成人| 欧美视频一区二| 欧美日韩视频在线第一区| 欧美伊人久久久久久午夜久久久久| 99精品国产视频|