Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Load ảnh trong Resource Files vào PictureBox

  1. #1
    Ngày gia nhập
    07 2011
    Bài viết
    5

    Exclamation Load ảnh trong Resource Files vào PictureBox

    Em có dùng code sau:
    Code:
    pictureBox_Flag->Image=Image::FromFile("C:\\Visual Studio 2010\\Projects\\globe\\Flag&Emblem\\ten_file.png");
    nhưng khi thay đổi đường dẫn đến file ảnh (copy project sang máy đứa bạn) thì sinh lỗi ko tìm được file để hiển thị, em muốn gộp tất cả vào Resource File, và đưa ảnh ra pictureBox thì làm thế nào, mọi người giúp với!!!

  2. #2
    Ngày gia nhập
    08 2012
    Bài viết
    71

    cái code mà mình đã đưa là code ví dụ để hiển thị hình ảnh đó ra pictureBox. Bạn bê nguyên xi tên đường dẫn vào thì dĩ nhiên khi đem qua máy khác thì làm gì có file đó để đọc.
    Mình ko biết dùng Resource File là làm cách nào ( ko mường tượng ra được ). Nhưng khi copy qua máy khác thì bạn có thể copy nguyên thư mục qua máy đó. Sử dụng DirectoryInfo để kiểm tra và tạo thư mục trong máy tính.
    C Code:
    1. DirectoryInfo ^s_file = gcnew DirectoryInfo("my_soft_img"); /* my_soft_img nằm đồng cấp với thư mục chứa file thực thi */
    2. if(!s_file->Exists)
    3. {
    4.      s_file->Create();
    5. }
    6. else
    7. {
    8.     /* xử lý ở đây */
    9. }
    mình ko biết có bao nhiêu cách xử lý phần "xử lý ở đây", nhưng cá nhân mình thì mình làm theo 1 trong 2 cách.
    1/ đọc file cố định : nghĩa là cóp qua bao nhiu chỉ đọc bấy nhiu. Cóp thiếu ---> hiện lỗi, cóp dư ---> file dư ko được đọc.
    2/ đọc toàn bộ số file nằm trong đó, nếu file ko có thì hiện ra câu thông báo : "ko có file ảnh nào".

    Để kiểm tra trong thư mục đó có những file nào, bạn có thể thử với dòng code sau :
    C Code:
    1. private: void GetFile(DirectoryInfo^ dd)
    2. {
    3.   for each (FileInfo^ item in dd->GetFiles())
    4.   {
    5.     Debug::WriteLine(item->FullName);
    6.   }
    7. }

    Sau khi lấy dc tên file trong thư mục đó, bạn chỉ việc vứt những file hình ảnh vào trong pictureBox là xong.
    Trước khi là PRO thì chắc chắn sẽ là CON GÀ
    Và mình thì đang ở mức độ CON GÀ

  3. #3
    Ngày gia nhập
    07 2009
    Bài viết
    48

    Theo mình nghĩ, để load tự động thế này thì tốt nhất bạn cho ảnh vào một thư mục nào đó, và đặt thư mục ảnh này cùng thư mục với file chạy (.exe). Khi chương trình chạy, bạn lấy về đường dẫn tới file chạy đó, sau đó thêm phần đuôi dẫn đến thư mục ảnh của bạn, lúc này thì cop đi đâu cũng chạy được.
    Ví dụ bạn có ảnh 123.png và bạn cho vào thư mục Image, đặt cùng thư mục với file chạy.
    Láy về đường dẫn tới file chạy như sau:

    Code:
    CString strDir;
    TCHAR szFullPath[1024];
    ::GetModuleFileName(NULL, szFullPath, 1024);
    CString sPath = (CString)szFullPath;
    sPath += ("//Image//123.png");
    Lưu ý là trong đường dẫn thay vì viết dấu / bạn phải viết // thì chương trình mới hiểu đúng đường dẫn.
    Mình hay làm cách này để load ảnh thoai.

  4. #4
    Ngày gia nhập
    07 2011
    Bài viết
    5

    đa tạ đã chỉ giáo

Các đề tài tương tự

  1. Thêm files vào Resource Files trong VC++ 2010 như thế nào ?
    Gửi bởi potw trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 16-11-2012, 10:32 AM
  2. Picturebox trong winform. Làm sao load ảnh vào picturebox?
    Gửi bởi tinhspt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 14
    Bài viết cuối: 02-06-2012, 07:18 PM
  3. Load nhiều ảnh vào PictureBox trong lập trình C#?
    Gửi bởi cobe_lilac114 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 14
    Bài viết cuối: 10-03-2012, 12:51 PM
  4. Load nhiều ảnh lên picturebox trong C#?
    Gửi bởi tonylittle trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 23-08-2011, 10:13 AM
  5. Graphic Load ảnh từ resource của user control trong C#?
    Gửi bởi Broly trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 01-04-2011, 03:06 PM

Quyền hạn của bạn

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