當前位置:首頁 » 編程語言 » java繪制圖片

java繪制圖片

發布時間: 2023-01-22 15:44:27

『壹』 在java的image圖片類中畫線怎麼畫

importjava.awt.*;
classMyCanvasextendsCanvas{
publicvoidpaint(Graphicsg){
g.setFont(newFont("華文行楷",Font.PLAIN,20));
g.setColor(Color.RED);
g.drawString("繪圖測試!",20,20);
g.drawLine(30,60,100,60);
g.setColor(Color.BLUE);
g.draw3DRect(60,50,70,30,false);
g.setColor(Color.BLUE);
g.fillArc(0,60,65,65,40,80);
g.setFont(newFont("華文彩雲",Font.PLAIN,30));
g.setColor(Color.PINK);
g.drawString("彩雲之南",20,120);
}
}

publicclassAWTDrawing{
publicstaticvoidmain(Stringargs[]){
Framef=newFrame("AWT繪圖");
MyCanvasp=newMyCanvas();
f.add(p);
f.setSize(170,170);
f.setBackground(newColor(160,220,220));
f.setVisible(true);
}
}


效果圖(該網站bug315上面還有很多java相關的知識,你可以去學習一下呵呵):

『貳』 有誰能告訴我idea中java的繪制圖像為什麼會這樣出現錯誤,並且沒有圖像

本地測試了一下,沒有重現圖片上的錯誤,貼出代碼提供參考:


public class ImageOnPanel {
public static void main(String[] args) {
JFrame frame = new JFrame("image test");

MyPanel myPanel = new MyPanel();
frame.getContentPane().add(myPanel);


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 500);
frame.setVisible(true);
}


}

class MyPanel extends JPanel{
@Override
public void paint(Graphics g) {
Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/w(1).png"));
g.drawImage(image, 0, 0, this);

}
}


『叄』 java graphics.drawimage 繪制圖片後閃了一下就不見了

你需要覆蓋jLabelIMGDisplay的paint方法來實現繪制,否則你這樣在這里繪制後,jLabelIMGDisplay的paint在其他地方(任何界面事件都有可能,比如滑鼠移動、窗口大小/位置改變等)觸發後就把你在這兒繪制的給沖掉了。

『肆』 java中滑鼠點擊繪制圖形時,其他按鈕和插入的圖片出現錯位。

super.paintComponent(g);是必須的,整個面板都要重繪才行,具體機理我也不會熟悉了,swing這東西沒怎麼研究……

而你加了這個之後,面板重繪,你之前畫的東西自然會被擦掉,解決的方法也很簡單,每次面板先重繪,然後再畫你要畫的東西。那麼你把你要畫的東西先記在list裡面,然後每次畫的時候,把list裡面的東西都畫出來,這樣不就不會丟失之前的信息了嗎,修改部分如下:

classPanelMextendsJPanel
{
ImageIconicon=newImageIcon("app.gif");
JLabeljl=newJLabel(icon,SwingConstants.CENTER);
intx,y;
booleanboo=false;

//新增的list
privateList<Integer>listX=newArrayList<Integer>();
privateList<Integer>listY=newArrayList<Integer>();

publicPanelM()
{
add(jl);
addMouseListener(newMouseAdapter()
{
publicvoidmousePressed(MouseEventm)
{
x=m.getX();
y=m.getY();

//每次都記到list裡面
listX.add(x);
listY.add(y);

repaint();
boo=true;
}
});
}

publicvoidpaintComponent(Graphicsg)
{
if(boo)
{
super.paintComponent(g);

//把list裡面的東西都畫出來
for(inti=0;i<listX.size();i++)
{
g.fillOval(listX.get(i),listY.get(i),20,20);
}
}
}
}

『伍』 java中繪制圖片的setframe方法是什麼意思

重寫setFrame方法,自己調整cell的frame
- (void)setFrame:(CGRect)frame
{
// 更改x、寬度
frame.origin.x = kTableBorderWidth;
frame.size.width -= kTableBorderWidth * 2;

// 更改頂部間距、每個cell之間的間距
frame.origin.y += kTableTopBorderWidth;
frame.size.height -= kTableViewCellMargin;

[super setFrame:frame];
}

『陸』 java ! paint繪制圖片時都是以左上角為准,現在我想以中心點往下為准,應該怎麼寫

可以這樣搞,用BufferedImage實例一個圖片,用getGraphics()方法得當這張圖片的畫筆,一切的作圖都用這個畫筆畫,畫完之後將這張圖片繪制到界面上,從界面的中心點畫就ok了

『柒』 Java程序中圖片的使用方法

使用圖像根據需要,可以有多種方法。
如果是放在組件中,如JButton、JLabel中,這些組件需要的是Icon介面的圖像,那麼使用ImageIcon類來載入圖像比較好,new
ImageIcon(String
filename)或new
ImageIcon(URL
location)都可以直接載入圖像文件。
甚至你還可以先用IO讀出byte流,也能用byte[]創建ImageIcon。還可以由已有的Image來創建。
更為高級的用法是,你還可以先創建個空的ImageIcon,然後重寫paintIcon(Component,Graphics,int,int)方法實現手工繪制!
如果你是要完成圖像繪制,那麼使用Image或BufferedImage比較好。
Toolkit.getDefaultToolkit().getImage(String或URL)就能載入圖像。
這種方法需要一個圖像觀察者來監視圖像是否載入完成,因為圖像載入是非同步的。通常,你用一個swing組件就可以充當這個角色。不過少用JLabel,因為我有一個程序用JLabel做觀察者CPU佔用率經常90%多,有時不出界面。用JPanel或JFrame都沒出過這個問題。從API文檔看,應該是所有的swing可視組件都實現了觀察者介面。
選了觀察者後,不用刻意觀察載入情況,很簡單的一個方法:swing組件的while(!prepareImage(Image));就可以了。
Image介面是Graphics類繪圖drawImage要用的,所以繪制時應該選這個。
BufferedImage是實現了Image介面的圖像,可以直接操作像索數據!所以利用演算法生成圖像再繪制,或圖像處理可以使用這種方法。如浮雕、反色等。
載入方法是ImageIO類的read方法。

『捌』 如何用java對圖片進行標記和繪制處理

可以把圖片加入到JLabel裡面;JLabel有這樣一個方法 JLabel(String text, int horizontalAlignment) 創建具有指定文本和水平對齊方式的 JLabel 實例。

『玖』 Java編寫時,怎麼輸出一張圖片呀

(1)首先用ImageIO類讀取這張圖片
(2)如果要對這張圖片修改,通過圖片獲取Graphics對象,再調用Graphics的方法來繪制、修改。

(3)再調用ImageIO的方法將圖片輸出到特定IO流即可。

具體代碼實例可參考李剛的瘋狂Java講義的11.8節。

『拾』 java 在已有的圖片上畫圖

//讀取圖片文件,得到BufferedImage對象

BufferedImage bimg=ImageIO.read(new FileInputStream("圖片文件路徑"));
//得到Graphics2D 對象
Graphics2D g2d=(Graphics2D)bimg.getGraphics();
//設置顏色和畫筆粗細
g2d.setColor(Color.RED);
g2d.setStroke(new BasicStroke(3));
//繪制圖案或文字
g2d.drawString("文本", x坐標, y坐標);

//保存新圖片
ImageIO.write(bimg, "JPG",new FileOutputStream("文件路徑"));

熱點內容
oracle存儲過程的使用方法 發布:2025-07-19 17:29:10 瀏覽:954
阻值的演算法 發布:2025-07-19 17:24:57 瀏覽:984
安卓怎麼啟動exe 發布:2025-07-19 17:21:58 瀏覽:639
linux生成可執行文件 發布:2025-07-19 17:20:37 瀏覽:862
預演算法修訂的背景 發布:2025-07-19 17:19:46 瀏覽:855
腳本製作計算器 發布:2025-07-19 17:18:30 瀏覽:271
sqlifthen語句 發布:2025-07-19 17:18:27 瀏覽:834
網吧的資料庫 發布:2025-07-19 17:07:58 瀏覽:565
ipad怎麼把微信加密碼 發布:2025-07-19 16:58:45 瀏覽:365
查看linux被攻擊 發布:2025-07-19 16:50:45 瀏覽:638