Hiển thị kết quả từ 1 đến 8 / 8

Chủ đề: [dis]

  1. #1
    Tham gia
    20-02-2003
    Location
    Ha Noi
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts

    [dis]

    Xin chao !
    Co ai do' co the giup minh duoc khong ?
    Minh dang muon hien file anh trong java application nhung khi nap anh thay khong chay . Moi nguoi co the giup minh` voi' !
    Chu thich' la khi nap anh chay trong Applet thi chay rat' tot' !
    Xin cam on nhieu
    Quote Quote

  2. #2
    Tham gia
    26-08-2002
    Location
    HCM
    Bài viết
    1,024
    Like
    2
    Thanked 30 Times in 19 Posts
    Bạn hãy xem lại đường dẩn của file ảnh xem ,có thể lỗi ở chỗ đó .
    Bạn có thế Post đoạn nạp ảnh đó lên không ? Như vậy tiện cho việt Debug hơn !
    haivl đã trở lại thành 3giai.com, nhiều ảnh chế - clip hài cực chất

  3. #3
    Tham gia
    20-02-2003
    Location
    Ha Noi
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts
    Cam on ban da tra loi ,
    Minh da nap anh rat dung duong dan vi` khi cho hien o Applet anh hien ra ro~ . Minh dang dinh dung doi tuong ImageProducer , va PixelGrabber de lay gia tri diem anh . Trong sach day thi cung chi thay ho lam` tren Applet .
    Va lai minh` thay trong javax.swing ho khong ho~ tro ham` getDocumentBase() .
    Ban co the giup minh nap anh va` lay' gia' tri diem anh ma` dung` duoc tren ung' dung khong ?
    Cam' on nhieu !

  4. #4
    Tham gia
    06-03-2003
    Bài viết
    29
    Like
    0
    Thanked 0 Times in 0 Posts
    Hi !
    Về việc hiển thị ảnh trên Java Aplication không khó lắm đau vì nó cùng trên nguyên tắc với Applet . Ban nên dùng một đối tượng là image trong lớp Image của packet java.awt.* ; sau đó chỉ việc thiết lập hiển thị đối tượng đó trong panel là xong

    Sau đây là đoạn chương trình minh hoạ :

    JLabel logoimageposition;
    .....
    ....
    Icon logoimage = new ImageIcon("/đường dẫn chứa file hình ảnh cầnnạp ");
    logoimagepostion = new JLabel(logoimage);
    .....
    ....
    panel.add(logoimageposition);

    Vập là xong . Chỉ xin bạn nhớ dùng tool của Java là policy thiết lập thuộc tính cho hình ảnh nủa là xong
    Chúc bạn vui vẻ

  5. #5
    Tham gia
    20-02-2003
    Location
    Ha Noi
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts

    Help

    Chào bạn
    Mình không có ý định đưa ảnh lên như vậy vì nếu như vậy thì đâu có gì đặc biệt đâu . Mình định đưa một ảnh ra để lấy giá trị từng điểm ảnh để xử lý . Phương thức lấy ảnh như sau dây :


    originImage=getImage(getDocumentBase(),"test.bmp") ;
    //Lay doi tuong ImageProducer tu anh goc
    ImageProducer producer=originImage.getSource();
    //Tao doi tuong ImageConsumer de lay du lieu tu Producer dua vao day pixs
    PixelGrabber pg=new PixelGrabber(producer,0,0,w,h,pixs,0,w);
    //Bat dau lay du lieu
    try{
    pg.grabPixels();
    //System.out.print(pixs[1]);
    }catch(InterruptedException e){
    System.err.println("Error !");
    return;
    }

    Việc xử lý trên Applet hoàn toàn bình thường . Chỉ có điều mình muốn chuyển sang Application thì không được . Mong bạn giúp .
    Cảm ơn nhiều .

  6. #6
    Tham gia
    20-02-2003
    Location
    Ha Noi
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts
    Đoạn code này mình dùng để tạo ảnh trên Application . Bạn xem hộ mình xem lỗi nằm ở đâu vậy ?

    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
    import java.awt.image.*;

    public class CompressImage extends Applet{
    Image originImage;//Luu anh goc
    int w=300;//Chieu rong
    int h=300;//Chieu dai
    int bitNumber=6;
    //Vung nho de chua du lieu anh
    int pixs[]=new int[w*h];

    public void init(){
    setLayout(null);//Thiet lap NullLayout
    Button numberBit=new Button(" Number's Bit : ");//Nut chon so bit de luong tu hoa
    numberBit.setBounds(10,10,70,30);
    add(numberBit);

    TextField textBit=new TextField("5",10);
    textBit.setBounds(100,10,70,30);
    add(textBit);
    originImage=getImage(getDocumentBase(),"test.bmp") ;
    //Lay doi tuong ImageProducer tu anh goc
    ImageProducer producer=originImage.getSource();
    //Tao doi tuong ImageConsumer de lay du lieu tu Producer dua vao day pixs
    PixelGrabber pg=new PixelGrabber(producer,0,0,w,h,pixs,0,w);
    //Bat dau lay du lieu
    try{
    pg.grabPixels();
    //System.out.print(pixs[1]);
    }catch(InterruptedException e){
    System.err.println("Error !");
    return;
    }

    }

    public void paint(Graphics g){
    g.drawImage(originImage,100,100,this);
    }

    public static void main(String args[]){
    Frame myFrame;
    myFrame=new Frame("Compress Image");
    CompressImage app=new CompressImage();
    myFrame.add(app);
    myFrame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent evt){
    System.exit(0);
    }});
    myFrame.setSize(new Dimension(400,250));
    myFrame.setVisible(true);
    app.init();
    app.start();
    }
    }

  7. #7
    Tham gia
    06-03-2003
    Bài viết
    29
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình chưa xem kĩ source code của bạn .Nhưng có một lối mình thay ngay đầu tiên là : bạn dùng hàm main để triệu gọi một đối tượng của lớp CompressImage mà trong khi lớp này kế thừa từ lớp JApplet là một sai lầm . Nếu bạn muốn làm như vậy thì trước tiên lớp CompressImage sẽ kế thừa từ lớp JFrame và bạn thay hàm init() bằng constructor của lớp này là xong . Bởi vì trong java làm sao bạn có thể chạy cùng lúc một Applet và một Aplication trong cùng một source code được . Không thể có cả hai hàm main và init được đâu . Mình sẽ xem kĩ lại xem còn lối nào nữa không .

  8. #8
    Tham gia
    20-02-2003
    Location
    Ha Noi
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts
    Chào bạn,
    Nếu như bạn bảo là việc đưa một đối tượng Applet vào trong frame là sai lầm thì mình lại không nghĩ vậy . Cũng với mã nguồn lần trước mình gửi nếu bạn bỏ đi phần nạp ảnh thì chạy trên ứng dụng là một điều bình thường . Bạn không tin có thể test thử . Việc gọi một đối tượng thuộc lớp Applet ( hôm trước là do mình viết nhầm JApplet , nhưng thật ra cũng chẳng hề gì vì với lớp Applet cũng bị lỗi mà ! ). Còn việc chuyển thành thừa kế của lớp Frame thì mình đã làm từ đầu rồi vì đó là cách chuyển thành ứng dụng cơ bản mà . Ai mà chẳng biết điều đó . Nhưng vấn đề ở chỗ là khi đó chương trình sẽ không nhận hàm : getDocumentBase() . Mình chẳng hiểu tại sao nữa . Khó hiểu hết sức !!!
    Nếu có thể bạn có thể viết giúp mình đoạn chương trình nạp ảnh theo đối tượng Image , chứ không phải là đối tượng Icon . Vì cái mình cần không phải là để hiện ra màn hình .



Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •