90 * 90的圖片
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)五華,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):13518219792
應(yīng)該是分成9個(gè)10 * 10的吧
static Image createImage(Image image, int x, int y, int width, int height, int transform)
Image類(lèi)里面自帶方法創(chuàng)建分割圖片
可以這樣創(chuàng)建:
Image imgBase = Image.createImage("/*.png");
Image img[] = new Image[9];
for(int i = 0; i 9; i++)
{
img[i] = Image.createImage(imgBase, (i % 3) * 10, (i / 3) * 10, 10, 10, Sprite.TRANS_NONE); //參數(shù)分別是:源圖片,截取的X坐標(biāo),Y坐標(biāo),寬,高,翻轉(zhuǎn)類(lèi)型
}
這樣就可以了
當(dāng)然以上代碼需要放在try里面
如果想分成其他的小圖片,可以按照需要變動(dòng)坐標(biāo)和寬高等參數(shù)
每次畫(huà)圖之前先用背景色填充一個(gè)框就可以啊
g2d.setColor(Color.white);//設(shè)背景色
g2d.fillRect(0,0,600,600);//填充整個(gè)窗口
java處理獲得內(nèi)切圓圖片的代碼如下:
public static void main(String[] args) throws IOException {
BufferedImage bi1 = ImageIO.read(new File("d:/1.jpg"));
// 根據(jù)需要是否使用 BufferedImage.TYPE_INT_ARGB
BufferedImage image = new BufferedImage(bi1.getWidth(),
bi1.getHeight(), BufferedImage.TYPE_INT_ARGB);
Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, bi1.getWidth(), bi1
.getHeight());
Graphics2D g2 = image.createGraphics();
image = g2.getDeviceConfiguration().createCompatibleImage(
bi1.getWidth(), bi1.getHeight(), Transparency.TRANSLUCENT);
g2 = image.createGraphics();
g2.setPaint(new Color (255,255,255));
g2.fill(new Rectangle(image.getWidth(), image.getHeight()));
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f));
g2.setClip(shape);
// 使用 setRenderingHint 設(shè)置抗鋸齒
g2.drawImage(bi1, 0, 0, null);
g2.dispose();
try {
ImageIO.write(image, "PNG", new File("d:/2.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
用java代碼模擬一張圖片可以這樣操作:1.創(chuàng)建BufferedImage類(lèi)
2.根據(jù)BufferedImage類(lèi)得到一個(gè)Graphics2D對(duì)象
3.根據(jù)Graphics2D對(duì)象進(jìn)行邏輯操作
4.處理繪圖
5.將繪制好的圖片寫(xiě)入到圖片
package util;
import java awt AlphaComposite;
import java awt Color;
import java awt Font;
import java awt Graphics D;
import java awt Image;
import java awt geom AffineTransform;
import java awt image AffineTransformOp;
import java awt image BufferedImage;
import java io File;
import java io IOException;
import javax imageio ImageIO;
/**
* @author Eric Xu
*
*/
public final class ImageUtils {
/**
* 圖片水印
* @param pressImg 水印圖片
* @param targetImg 目標(biāo)圖片
* @param x 修正值 默認(rèn)在中間
* @param y 修正值 默認(rèn)在中間
* @param alpha 透明度
*/
public final static void pressImage(String pressImg String targetImg int x int y float alpha) {
try {
File img = new File(targetImg);
Image src = ImageIO read(img);
int wideth = src getWidth(null);
int height = src getHeight(null);
BufferedImage image = new BufferedImage(wideth height BufferedImage TYPE_INT_RGB);
Graphics D g = image createGraphics();
g drawImage(src wideth height null);
//水印文件
Image src_biao = ImageIO read(new File(pressImg));
int wideth_biao = src_biao getWidth(null);
int height_biao = src_biao getHeight(null);
g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOP alpha));
g drawImage(src_biao (wideth wideth_biao) / (height height_biao) / wideth_biao height_biao null);
//水印文件結(jié)束
g dispose();
ImageIO write((BufferedImage) image jpg img);
} catch (Exception e) {
e printStackTrace();
}
}
/**
* 文字水印
* @param pressText 水印文字
* @param targetImg 目標(biāo)圖片
* @param fontName 字體名稱(chēng)
* @param fontStyle 字體樣式
* @param color 字體顏色
* @param fontSize 字體大小
* @param x 修正值
* @param y 修正值
* @param alpha 透明度
*/
public static void pressText(String pressText String targetImg String fontName int fontStyle Color color int fontSize int x int y float alpha) {
try {
File img = new File(targetImg);
Image src = ImageIO read(img);
int width = src getWidth(null);
int height = src getHeight(null);
BufferedImage image = new BufferedImage(width height BufferedImage TYPE_INT_RGB);
Graphics D g = image createGraphics();
g drawImage(src width height null);
g setColor(color);
g setFont(new Font(fontName fontStyle fontSize));
g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOP alpha));
g drawString(pressText (width (getLength(pressText) * fontSize)) / + x (height fontSize) / + y);
g dispose();
ImageIO write((BufferedImage) image jpg img);
} catch (Exception e) {
e printStackTrace();
}
}
/**
* 縮放
* @param filePath 圖片路徑
* @param height 高度
* @param width 寬度
* @param bb 比例不對(duì)時(shí)是否需要補(bǔ)白
*/
public static void resize(String filePath int height int width boolean bb) {
try {
double ratio = ; //縮放比例
File f = new File(filePath);
BufferedImage bi = ImageIO read(f);
Image itemp = bi getScaledInstance(width height bi SCALE_SMOOTH);
//計(jì)算比例
if ((bi getHeight() height) || (bi getWidth() width)) {
if (bi getHeight() bi getWidth()) {
ratio = (new Integer(height)) doubleValue() / bi getHeight();
} else {
ratio = (new Integer(width)) doubleValue() / bi getWidth();
}
AffineTransformOp op = new AffineTransformOp(AffineTransform getScaleInstance(ratio ratio) null);
itemp = op filter(bi null);
}
if (bb) {
BufferedImage image = new BufferedImage(width height BufferedImage TYPE_INT_RGB);
Graphics D g = image createGraphics();
g setColor(Color white);
g fillRect( width height);
if (width == itemp getWidth(null))
g drawImage(itemp (height itemp getHeight(null)) / itemp getWidth(null) itemp getHeight(null) Color white null);
else
g drawImage(itemp (width itemp getWidth(null)) / itemp getWidth(null) itemp getHeight(null) Color white null);
g dispose();
itemp = image;
}
ImageIO write((BufferedImage) itemp jpg f);
} catch (IOException e) {
e printStackTrace();
}
}
public static void main(String[] args) throws IOException {
pressImage( D:\\shuiyin png D:\\test jpg f);
pressText( 我是文字水印 D:\\test jpg 微軟雅黑 Color white f);
resize( D:\\test jpg true);
}
public static int getLength(String text) {
int length = ;
for (int i = ; i text length(); i++) {
if (new String(text charAt(i) + ) getBytes() length ) {
length += ;
} else {
length += ;
}
}
return length / ;
}
lishixinzhi/Article/program/Java/hx/201311/26874
按冒泡排序思想,有8顆豆子(大小不一)放在8袋子里, 從第1個(gè)袋了拿出豆子,與第2個(gè)袋子里的豆子相比較,如果第2個(gè)袋子里豆子比第1個(gè)袋子的豆子大,就把第2個(gè)袋子里的豆子放入第1個(gè)袋子,把第1個(gè)袋子的豆子放入第2個(gè)袋子。然后,第1個(gè)袋子繼續(xù)和第3個(gè)袋子比較。如果第2袋子的豆子不會(huì)比第1個(gè)袋子的大,就和第3個(gè)袋子比較,這樣一一個(gè)下直到和所有的袋子比較過(guò)。之后第2個(gè)袋子也與第2個(gè)袋子以后的相比較過(guò).......!
另外還要用到交換的方法:
代碼主要是用循環(huán)嵌套:
public class NewMain {
public static void main(String[] args) {
// TODO code application logic here
int a[]={1,5,8,11,16,30,40,50,199};//定義一個(gè)數(shù)組,也可寫(xiě)成 int[] a={1,5,8,11,16,30,40,50,199};
int c;//用于交換用的
for(int i=0;ia.length;i++){ //a.length 數(shù)組的長(zhǎng)度
for(int j=i+1;ja.length;j++){
if(a[j]a[i]){ // 進(jìn)行交換
c=a[j];
a[j]=a[i];
a[i]=c;
}
}
System.out.println(a[i]);
}
}