JAVA 仿微信九宮格頭像

2021-09-06 10:27:13 字數 3578 閱讀 4553

此文章首發於

public final class imageutil 

/*** 生成群組頭像

** @param paths 鏈結

* @param dir 輸出路徑

* @param groupid 群編號

* @return

* @throws ioexception

*/public static boolean getcombinationofhead(listpaths, string dir, string groupid)

throws ioexception else if (paths.size() > 1 && paths.size() < 5) else

for (int i = 0; i < paths.size(); i++)

bufferedimage outimage = new bufferedimage(canvans_w, canvans_h, bufferedimage.type_int_rgb);

// 生成畫布

graphics g = outimage.getgraphics();

graphics2d g2d = (graphics2d) g;

// 設定背景色

g2d.setbackground(new color(231, 231, 231));

// 通過使用當前繪圖表面的背景色進行填充來清除指定的矩形。

g2d.clearrect(0, 0, canvans_w, canvans_h);

// 開始拼湊 根據的數量判斷該生成那種樣式的組合頭像目前為九種

* 縮放

** @param filepath 路徑

* @param height 高度

* @param width 寬度

* @param bb 比例不對時是否需要補白

*/public static bufferedimage resize2(string filepath, int height, int width,

boolean bb) else

image itemp = bi.getscaledinstance(width, height,

image.scale_smooth);

// 計算比例

if ((bi.getheight() > height) || (bi.getwidth() > width)) else

affinetransformop op = new affinetransformop(

affinetransform.getscaleinstance(ratio, ratio), null);

itemp = op.filter(bi, null);

}if (bb) else

g.dispose();

itemp = image;

}return (bufferedimage) itemp;

} catch (ioexception e)

return null;

}/**

* 刪除檔案

* @param path

* @param filename

*/public void delfile(string path, string filename)

}/**

* 可依次生成九種情況的群頭像

** @param args

* @throws ioexception

*/public static void main(string args) throws ioexception

file file = new file("");

//生成目錄

groupid++;

imageutil.getcombinationofhead(list, path, groupid.tostring());}}

生成的效果圖:

詳細效果圖:

九宮格布局

2009 08 25 15 15 27 九宮格是一種比較古老的設計,它最基本的表現其實就像是乙個三行三列的 其實它最初是在window的c s結構中用得比較多,比如我們經常看 到軟體中的乙個窗體,其實就是乙個九宮格的典型應用,因為窗體需要在八個方向拉伸,所以在c s軟體中大量採用這種技術來布局設計。...

九宮格問題

include include stl 雙端佇列容器 include include pos.h using namespace std ofstream fout sudoku.txt deque d int lay deque d int checkout pos p,int n int sud...

九宮格排布

在我們設定ui時,肯定會遇到設定九宮格的效果 如上圖所示,我們如何讓展示出來哪?首先我們會發現 每行的的 y 值是一樣的 行數決定 y 值 每列的的 x 值是一樣的 列數決定 x 值 綜上所述 我們只要知道每張的 行數 和 列數 那麼,它的座標自然就肯定了 我們怎樣確定 行數 和 列數那?我們發現 ...