直播平臺搭建原始碼,java相簿製作

zhibo系統開發發表於2023-05-15

直播平臺搭建原始碼,java相簿製作

package cn.demo2;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
/**
 * 電子相簿
 */
public class MyImage extends JPanel{
    //定義一個成員變數
    BufferedImage bgImage;
    public static void main(String[] args) {
        //建立一個視窗
        JFrame frame=new JFrame();
        //設定一個視窗
        frame.setSize(450,750);
        //設定標題
        frame.setTitle("JAVA電子版相簿");
        //讓視窗居中顯示
//        frame.setLocation(300,40);
        frame.setLocationRelativeTo(null);
        //關閉視窗時關閉JVM,否則只是單方面關閉視窗,程式還在執行
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //建立皮膚物件
        MyImage myImage=new MyImage();
        //把皮膚放到視窗上
        frame.add(myImage);
        //呼叫初始化物件存放到視窗
        myImage.initImags();
        //把圖片畫到視窗上去,呼叫繪圖方法
        //重繪
//        myImage.repaint();
        // TODO 寫方法讓 ff  一直變   ,   開啟新的執行緒,用來該值
        myImage.become();
        //顯示出這一個視窗
        frame.setVisible(true);
    }
    float ff=0f;
    int num=0;  //陣列下標索引值
    //TODO 寫方法讓 ff 變數一直變
    public void become(){
        //啟動一個執行緒
        new Thread(new Runnable() {
            @Override
            public void run() {
                //一直去改變ff的值
                while (true){
                    //從陣列中獲取照片
                    bgImage=images[num];
                    num+=1;
                    //考慮陣列越界
                    if(num==4){
                        num=0;
                    }
                    while (true){
                        if(ff<100f){
                            ff+=2f;
                            repaint();
                        }
                        else{
                            ff=0f;
                            break;
                        }
                        //加一個休眠,否則太快了啥也沒有,還是白板
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }).start();
    }
    //需要重寫父類的方法    提供一個繪圖方法
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        /**
         * 做圖片效果,淡入
         */
        //轉換成子類物件,提供了更多的方法
        Graphics2D graphics2D= (Graphics2D) g;   //強轉
        //畫什麼東西
        if(bgImage!=null){
            //加入淡入效果
            graphics2D.setComposite(AlphaComposite.SrcOver.derive(ff/100f));
            //把這張圖片畫到視窗上去    G
            g.drawImage(bgImage,0,0,bgImage.getWidth(),bgImage.getHeight(),null);
        }
    }
    //TODO.1.   **存照片**   定義圖片型別陣列   BufferedImage表示圖片物件
    BufferedImage [] images=new BufferedImage[4];
    /**
     * 載入準備好的一些圖片
     */
    public void initImags(){
        try {
        //編寫一個for迴圈
        for (int i = 1; i <= 4; i++) {
            //每迴圈一次都要去載入一張圖片
                BufferedImage image = ImageIO.read(MyImage.class.getResource("/cn/demo2/image/" + i + ".jpg"));
                //沒讀取到一張圖片物件,把他存放到我們的陣列中
                images[i-1]=image;
        }
            //給成員變數賦值   TODO 換照片
            bgImage=images[1];
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


以上就是 直播平臺搭建原始碼,java相簿製作,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2952103/,如需轉載,請註明出處,否則將追究法律責任。

相關文章