Home >Java >javaTutorial >java image enlargement and reduction
To enlarge the image, you need to supplement the missing pixels. Commonly used methods are
1. Nearest Neighbor algorithm (Nearest Neighbor)
2. Bilinear interpolation algorithm (Bilinear Interpolation )
3. Bicubic Interpolation Algorithm (Bicubic Interpolation)
Wait, please see (Image Magnification Algorithm) for detailed introduction
Now we will use the nearest neighbor point interpolation method to magnify the image The effect of twice the code
<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>
is as follows:
## Reduction is relatively simple, and reduction is to remove some pixels.
Minified code:
<span style="max-width:90%"><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>The running effect is as follows: The above is the content of enlarging and reducing the java image, more related Please pay attention to the PHP Chinese website (www.php.cn) for content!