C Ilk Açılışta Fotoğraf Gösterme

C İlk Açılışta Fotoğraf Gösterme

C programlama dilinde, bir program başlatıldığında genellikle bir komut istemi penceresi açılır. Bu pencerede, kullanıcı komutlar girebilir ve programla etkileşime girebilir. Ancak, bazı durumlarda, programın ilk açılışında bir fotoğraf veya görüntü göstermek isteyebilirsiniz. Bu, kullanıcıya program hakkında görsel bir ipucu vermek veya programın markasını güçlendirmek için yararlı olabilir.

Bu makalede, C programlama dilinde bir programın ilk açılışında nasıl fotoğraf gösterileceğini inceleyeceğiz. İki farklı yaklaşımı ele alacağız:

  • Windows API’sini Kullanma
  • SDL2 Kütüphanesini Kullanma

Windows API’sini Kullanma

Windows API’si, Windows işletim sistemleriyle etkileşim kurmak için kullanılan bir dizi işlev ve veri yapısı sağlar. Bu API’yi kullanarak, bir pencere oluşturabilir ve bu pencereye bir görüntü yükleyebilirsiniz.

İşte Windows API’sini kullanarak C’de bir programın ilk açılışında nasıl fotoğraf gösterileceğine dair bir örnek kod:

“`c

include

int main() {
// Bir pencere sınıfı kaydedin
WNDCLASSEX wc = { sizeof(WNDCLASSEX) };
wc.lpfnWndProc = DefWindowProc;
wc.hInstance = GetModuleHandle(NULL);
wc.lpszClassName = “FotografPenceresi”;
RegisterClassEx(&wc);

// Bir pencere oluşturun
HWND pencere = CreateWindowEx(0, "FotografPenceresi", "Fotoğraf Gösterme", WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, GetModuleHandle(NULL), NULL);

// Bir görüntü yükleyin
HBITMAP resim = (HBITMAP)LoadImage(NULL, "resim.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

// Görüntüyü pencereye çizin
HDC dc = GetDC(pencere);
BitBlt(dc, 0, 0, 500, 500, CreateCompatibleDC(dc), 0, 0, SRCCOPY);
DeleteDC(dc);

// Mesaj döngüsüne girin
MSG mesaj;
while (GetMessage(&mesaj, NULL, 0, 0)) {
    TranslateMessage(&mesaj);
    DispatchMessage(&mesaj);
}

// Görüntüyü serbest bırakın
DeleteObject(resim);

return 0;

}
“`

Bu kod, “resim.bmp” adlı bir görüntü dosyasını yükler ve onu 500×500 piksel boyutunda bir pencereye çizer. Pencere, kullanıcı kapatana kadar açık kalır.

SDL2 Kütüphanesini Kullanma

SDL2 (Simple DirectMedia Layer 2), çok platformlu bir multimedya kütüphanesidir. Bu kütüphane, grafikler, ses ve giriş cihazları gibi çeşitli multimedya özelliklerine erişim sağlar. SDL2’yi kullanarak, C’de bir programın ilk açılışında nasıl fotoğraf gösterileceğine dair bir örnek kod:

“`c

include

int main() {
// SDL’yi başlatın
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf(“SDL başlatılamadı: %s\n”, SDL_GetError());
return 1;
}

// Bir pencere oluşturun
SDL_Window *pencere = SDL_CreateWindow("Fotoğraf Gösterme", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 500, 500, SDL_WINDOW_SHOWN);
if (pencere == NULL) {
    printf("Pencere oluşturulamadı: %s\n", SDL_GetError());
    SDL_Quit();
    return 1;
}

// Bir görüntü yükleme yüzeyi oluşturun
SDL_Surface *yuklemeYuzeyi = SDL_LoadBMP("resim.bmp");
if (yuklemeYuzeyi == NULL) {
    printf("Görüntü yüklenemedi: %s\n", SDL_GetError());
    SDL_DestroyWindow(pencere);
    SDL_Quit();
    return 1;
}

// Görüntüyü pencereye çizin
SDL_BlitSurface(yuklemeYuzeyi, NULL, SDL_GetWindowSurface(pencere), NULL);

// Mesaj döngüsüne girin
SDL_Event olay;
while (SDL_WaitEvent(&olay)) {
    if (olay.type == SDL_QUIT) {
        break;
    }
}

// Görüntüyü serbest bırakın
SDL_FreeSurface(yuklemeYuzeyi);

// Pencereyi yok edin
SDL_DestroyWindow(pencere);

// SDL'yi sonlandırın
SDL_Quit();

return 0;

}
“`

Bu kod, “resim.bmp” adlı bir görüntü dosyasını yükler ve onu 500×500 piksel boyutunda bir pencereye çizer. Pencere, kullanıcı kapatana kadar açık kalır.

Faydalı Siteler ve Dosyalar


Yayımlandı

kategorisi