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ố 11 kết quả

Đề tài: Cách chèn ảnh và background trong C++

  1. #1
    Ngày gia nhập
    06 2010
    Bài viết
    2

    Question Cách chèn ảnh và background trong C++

    mình mới học C++ nhưng rất muốn biết cách chèn ảnh và lấy 1 ảnh bất kì làm background cho chương trình thì như nào bạn có hứng giúp mình cái !!!

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Code đây :Đây

    Muốn ko bị bị mất ảnh khi redraw chỉ có cách subclass cửa sổ console, bắt message WM_PAINT để vẽ lại thôi. Còn không thì dùng thread liên tục vẽ lại sau 1/10 giây. Đây chỉ là mẹo vặt để nghịch chơi thôi chứ cũng không áp dụng được gì nhiều vì bản chất của console là text, khi đánh chữ thì chữ sẽ đè lên phần hình tại vị trí đó.

    bản quyền thuộc về mèo lông vàng
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  3. #3
    Ngày gia nhập
    06 2010
    Bài viết
    2

    ukm tk. minh dang sem!
    Không có việc gì khó
    Chỉ sợ tiền không nhiều.

  4. #4
    Ngày gia nhập
    04 2010
    Nơi ở
    vinh
    Bài viết
    9

    cái này có vẻ khó quá nhỉ

  5. #5
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Code chính của vấn đề này như phần share của Langman đã đưa, Peter đưa ra và Comment chút để các bạn hỏi đáp cho dễ:
    PHP Code:
    #include "stdafx.h"

    typedef HWND (WINAPI GETCONSOLEWINDOW)(void);



    int main(int argccharargv[])
    {
        
    GETCONSOLEWINDOW func = (GETCONSOLEWINDOW)GetProcAddress(GetModuleHandle("kernel32"), "GetConsoleWindow");
        
    HDC hdc GetDC(func());
        
    HDC memDC CreateCompatibleDC(hdc);
        
    HBITMAP hBm LoadBitmap(GetModuleHandle(NULL), "myBMData");
        
    SelectObject(memDChBm);

        
    BitBlt(hdc,0,0,320,240,memDC,0,0,SRCCOPY);

        
    getch();

        
    DeleteDC(memDC);
        
    DeleteObject(hBm);
        
        return 
    0;

    Trong hàm:
    PHP Code:
    int main(int argccharargv[]) 
    thì các tham số int argc, char* argv[] là không cần thiết dùng đến, vậy nên các bạn có thể để là
    PHP Code:
    int main() 
    ! Cũng không biết Meoconlongvang để vào làm gì, nhưng cũng OK mà!

    Đây là một app hay về console, sơ bộ có thể hiểu rằng:
    PHP Code:
    #include "stdafx.h"

    typedef HWND (WINAPI GETCONSOLEWINDOW)(void);



    int main(int argccharargv[])
    {
        
    GETCONSOLEWINDOW func = (GETCONSOLEWINDOW)GetProcAddress(GetModuleHandle("kernel32"), "GetConsoleWindow"); //Lấy địa chỉ hàm "GetConsoleWindow" trong kernel32
        
    HDC hdc GetDC(func());   //Lấy Handle Device context (gọi tắt là DC) của cửa sổ (Console) (thông qua hàm GetConsoleWindow (chính là func()) chúng ta lấy được Handle của Console)
        
    HDC memDC CreateCompatibleDC(hdc);  //Tạo ra một DC mới có các thuộc tính giống DC truyền vào...
        
    HBITMAP hBm LoadBitmap(GetModuleHandle(NULL), "myBMData");  //Load bitmap từ resource vào Console, bitmap này có ID là myBMData (các bạn hãy mở cp.res ra là thấy, chính là bitmap của Meoconlongvang đó, các bạn cũng có thể tự tạo một bitmap cho riêng mình..!.)
        
    SelectObject(memDChBm);

        
    BitBlt(hdc,0,0,320,240,memDC,0,0,SRCCOPY);  //Copy và dịch toạ độ bimap

        
    getch();

        
    DeleteDC(memDC);  //Xoá HDC
        
    DeleteObject(hBm);  
        
        return 
    0;


  6. #6
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Mặc định Cách chèn ảnh và background trong C++

    Ờ, có code này anh em tham khảo xem:

    PHP Code:
    #include <alloc.h>
    #include <conio.h>
    #include <graphics.h>
    #include <stdio.h>
    #include <stdlib.h>


    struct BMP
    {
        
    char Type[2];         
        
    unsigned long Size;    
        
    unsigned long Reserved;  
        
    unsigned long OffSet;  
        
    unsigned long headsize
        
    unsigned long Width;     
        
    unsigned long Height;   
        
    unsigned int  Planes;   
        
    unsigned int  BitsPerPixel;  
        
    unsigned long Compression
        
    unsigned long SizeImage
        
    unsigned long XPixelsPreMeter
        
    unsigned long YPixelsPreMeter
        
    unsigned long ColorsUsed;
        
    unsigned long ColorsImportant;
    };

    int ShowBMP(int xint ycharFileName)
    {
        
    int b,a;
        
    BMP Obj;
        
        
    unsigned charDatas;
        
    int in=0;
        
    unsigned char c=0;
        
    FILE fp;
        
        
    fp fopen(FileName,"rb");
        if(!
    fp){
            
    printf("Loi, khong the mo file...");
            exit(
    0);
        }
        
        
    fread(&Objsizeof(Obj), 1fp);
        if(
    Obj.BitsPerPixel!=4)
        {
            
    fclose(fp);
            
    printf("Loi, file khong dung dinh dang...");
            exit(
    0);
        };
        
    fseek(fp,Obj.OffSet,SEEK_SET);
        
    Datas=(unsigned char*) calloc(Obj.Width/2+1sizeof(unsigned char));
        for(
    b=Obj.Height;b>=0;b--)
        {
            
    fread(Datassizeof(unsigned char), Obj.Width/2fp);
            
    c=0;
            
    in=0;
            for(
    a=0;a<=Obj.Width;a+=2)
            {
                
    = (Datas[in] | 0x00) >>4;
                
    putpixel(a+x,b+y,c);
                
    = (Datas[in] | 0xF0) & 0x0F;
                
    putpixel(a+1+x,b+y,c);
                
    in++;
            }
        }
        
    free (Datas);
        
    fclose(fp);
        return 
    1;
    }
    void main()
    {
        
    int color;
        
    int gd,gm;
        
    gd VGA
        
    gm VGAHI;
        
    initgraph(&gd,&gm,"");
        
    ShowBMP(0,0,"Peterdrew.bmp");
        
    getch();
        
    closegraph();


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

    @peterdrew :
    Cũng không biết Meoconlongvang để vào làm gì, nhưng cũng OK mà!
    Tạo project tự động, nó thêm vào và mình cũng chẳng buồn sửa.

    Code của peter dùng để tham khảo cho việc đọc file bitmap thì hay hơn. Graphics giờ đâu dễ kiếm máy để chạy và nếu có thì cũng được tối đa 256 màu.
    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.

  8. #8
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Code của peter dùng để tham khảo cho việc đọc file bitmap thì hay hơn. Graphics giờ đâu dễ kiếm máy để chạy và nếu có thì cũng được tối đa 256 màu.
    Hì, OK mèo, searh google thấy mừng quá, post anh em tham khảo,....

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    1. cái struct này nên đặt tên là bmp header thì phải (spam)

    2. int main(int argc, char* argv[]) tạo project là có mà anh ạ, tiện lắm, với có thể bạn ấy gõ
    int mai rồi ấn enter cái nó là ra full style như thế anh à,

    3. anh ơi bài viết này có nhiều công sức và ý nghĩa, nên up vê topic này để các newmem tiện tra cứu http://forums.congdongcviet.com/showthread.php?t=26317
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

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

    Cho hoi Chút Visual thiếu ji mà không chạy thư viên
    PHP Code:
    #include <alloc.h>
    #include <graphics.h> 

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

  1. Cho em hỏi về background của sprite?
    Gửi bởi tun_tun trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 05-11-2012, 07:29 PM
  2. Game Sử dụng Surface làm scolling Background trong DirectX bằng cách nào??
    Gửi bởi loveallthegirl12 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 26-09-2012, 07:22 AM
  3. Không dàn hết background trong thẻ Div, xử lý thế nào?
    Gửi bởi FlynnRiderIT trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 15-06-2012, 08:30 AM
  4. Sử dụng CSS background-image trong Masterpage.master không chạy trên localhost?
    Gửi bởi canhkho trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 22-04-2011, 07:37 AM
  5. Thay đổi background cho form trong lập trình C#?
    Gửi bởi hunter2212 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 20-05-2009, 07:37 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