ホームページ  >  記事  >  Java  >  Java画像の拡大・縮小

Java画像の拡大・縮小

黄舟
黄舟オリジナル
2016-12-30 11:51:041935ブラウズ

画像を拡大するには、不足しているピクセルを補う必要があります。一般的に使用される方法は、

1. 最近傍アルゴリズム (Nearest Neighbor)

2. バイリニア補間アルゴリズム (バイキュービック補間) です。 )

など、詳細な紹介については (画像拡大アルゴリズム) を参照してください
ここで、最近傍補間法を使用して画像を 2 倍に拡大するコードを与えます

<span style="font-size:14px;"><span style="font-size:10px;">p<span style="font-family:Courier New;">ublic void Todouble(){
		int[] doubleData = new int[2*w*2*h];
		for (int y = 0; y < h; y++) {
            for (int x = 0; x < w; x++) {
            	doubleData[2*x + 2*y *2* w] = data[x + y * w];
            }
		}
		
		this.h = 2*h;
		this.w = 2*w;
		for (int y = 0; y < h; y++) {
            for (int x = 0; x < w; x++) {
            	if(y%2 == 1)
            		doubleData[x + y*w] = doubleData[x + (y-1)*w];
            	if(x%2 == 1)
            		doubleData[x + y*w] = doubleData[x-1 + y*w];
            }
		}
		this.data = doubleData;
		
	}</span></span></span>

効果は次のとおりです:

Java画像の拡大・縮小

Java画像の拡大・縮小縮小する 比較的単純な縮小とは、いくつかのピクセルを削除することです。

縮小コード:

<span style="font-size:14px;"><span style="font-size:10px;">public void reduce(int a){//a是缩小的<span style="font-family:Times New Roman;">倍数</span>
		int nw = w/a;
		int nh = h/a;
		int[] d = new int[nw*nh];
		
		for (int y = 0; y < nh; y++) {
                  for (int x = 0; x < nw; x++) {
            	   d[x + y*nw] = data[a*x + a*y * w];
                  }
		}
		this.h = nh;
		this.w = nw;
		this.data = d;
	}</span></span>

実行時の効果は次のとおりです:

Java画像の拡大・縮小 上記は Java 画像の拡大と縮小の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.ん)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。