Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Lưu lại hình ảnh được vẽ thông qua lớp CDC ???

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Mặc định Lưu lại hình ảnh được vẽ thông qua lớp CDC ???

    Mình có một chương trình sử dụng CDC để vẽ, mình muốn lưu lại hình ảnh đã được vẽ khi load chương trình, hoặc khi người dùng lựa chọn hình họ muốn display, sau đó vẽ thêm và display nó ở một form khác thì làm thế nào?

    Rất mong các bạn giúp đỡ để giải quyết vấn đề này. Xin cảm ơn!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Cái này em chưa thử làm nhưng nếu em không lầm là dùng kỹ thuật DC ảo sau đó dùng một hàm gì đó để save lại(cái này ko rõ ).

    đây em có source mà em vừa lục thấy (không nhớ là down ở đâu nữa. bác xem thử xem sao nhé.).

    http://www.mediafire.com/?qzgiuxdbsdg

    em đã thử và nó có lẽ đáp ứng nhu cầu của bác.
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 06-09-2008 lúc 07:03 PM.

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Ý bác muốn lưu dưới dạng file nhị phân hay là file bitmap, jpg ? Có 2 cách lưu : lưu theo thông tin về hình ảnh, chẳng hạn như hình tròn thì lưu tâm và bán kính. Cách thứ 2 là lưu toàn bộ pixel trong hình. Lớp CDC có phương thức GetSafeHandle ( em ko nhớ rõ lắm ) để lấy hdc thật của hình. Bác truyền hdc đó vào các hàm như BitBlt, GetDIBit để lấy được buffer chứa ma trận pixel của bức hình. Có được ma trận đó rồi thì lưu dưới dạng gì thì tùy bác quyết định.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Kỹ thuật Memory Device context mình có biết, ý mình cũng không phải lưu ra file. Tức là mình chỉ muốn lưu (hoặc đánh dấu) hình ảnh đã được vẽ vào bộ nhớ để không phải vẽ lại từ đầu ảnh đó ở các form khác hoặc khi form redraw. Và có thể vẽ tiếp lên hình ảnh đó nếu như ở một chỗ nào đó yêu cầu. Ý mình là vậy!

    Cái source của bạn zkday2686 chỉ có để zoom in/out một file ảnh thôi. Cái này thì dùng memory DC là được, mình hiểu vấn đề này.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  5. #5
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Thì tạo memory bitmap, CreateCompatibleDC, CreateCompatibleBitmap gì đó... rồi BitBlt, StrectBlt từ DC display vào memory bitmap đó.
    Memory bitmap bản chất cũng chỉ là một vùng memory thôi, quản lý nó = array, list, vector... gì đó cũng được.
    Mấy năm rồi không code quên hết tiêu rồi.

  6. #6
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Mặc định Lưu lại hình ảnh được vẽ thông qua lớp CDC ???

    Em cũng hiểu thế, nhưng em không biết lưu bitmap bằng cách nào? và re-display. Thử hoài không được gì hết cả. Rất mong mọi người giúp đỡ
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  7. #7
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Thì sau khi BitBlt, xxxBlt gì đó, HBITMAP của memory bitmap đã chứa hình ảnh copy rồi, quản lý nó như các handle bình thường, khi nào giải phóng thì DeleteObject đi.

  8. #8
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Vâng đúng thế, khi em vẽ bằng memory DC thực ra là vẽ vào một Bitmap, nhưng lạ là khi em attach vào DC ở một chỗ khác nó đòi hỏi là phải NULL mới attach được. Nếu em sử dụng hàm DC::GetCurrentBitmap, sau đó selectobject đó thì chẳng thấy nó có kết quả gì cả. Cuối cùng là không biết phải làm thế nào?
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  9. #9
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Em có một ý thế này bác coi có được ko nhé?
    bác thử khai báo biến Bitmap ở mức toàn cục.
    rồi ở chổ nào cần sử dụng nó bác cứ khai báo nó với từ khóa extern.

    sau đó bác cứ selectObject thằng bitmap đó lên ở những chổ mà bác muốn nó hiện lên thử xem sao.
    Có một thời em chuyển dữ liệu giữa các dialog bằng cách này. không biết nó có hiệu quả trong trường hợp này không?
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 06-09-2008 lúc 11:14 PM.

  10. #10
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Nó đòi hỏi hObject của bitmap phải là NULL mới select được. Mình thử theo cách của bạn nhưng không được.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

  1. Dạy vẽ móng, vẽ nail chuyên nghiệp
    Gửi bởi marketeronline trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 14-04-2012, 11:14 AM
  2. Đồ họa trên C++ Hàm vẽ điểm glVertex3f vẽ sai trong openGL?
    Gửi bởi kazat trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 26-03-2012, 08:21 PM
  3. Trả lời: 2
    Bài viết cuối: 24-05-2011, 12:29 AM
  4. Vẽ một bông hoa bằng cách vẽ các elip nghiêng 1 góc G độ với các màu khác nhau?
    Gửi bởi kimhieuqtvn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 09-04-2011, 02:40 PM
  5. Chế độ tô vẽ và vẽ mượt mà (antialiashing) trong lập trình C#
    Gửi bởi neverland87 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 24-06-2007, 01: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