Skocz do zawartości

[C++] Grafika w konsoli


Rekomendowane odpowiedzi

Opublikowano

Niestety nie, choć nie jestem pewien ale stawiam 99,9% szans, ze w aplikacji napisanej w c++ konsolowej nie można dawać obrazów. Z resztą, widziałeś kiedyś takie coś :D

. Ale ja mam bardzo malutkie doświadczenie z tym językiem, więc może się da...

Opublikowano
Witajcie! Mam pytanie:

Czy w programie zrobionym w konsoli można używac grafiki typu np. jpg?

 

Nie:/ ale mozesz sobie zrobic jakies rysunki znakami xD np:

00011000000
00011000000
00011000000
00011111000

O jakie fajnie L mi wyszło xD

Opublikowano

W konsoli możesz co najwyżej ascii-arta zrobić. JEDNAK, jakbyś pisał pod czystego DOSa program, to jak najbardziej byś mógł, z wykorzystaniem jakiegoś trybu graficznego bądź chronionego ;p

  • 4 tygodnie później...
Opublikowano

W windowsowskiej konsoli się da wyświetlić JPG. Musisz wpierw zdobyć identyfikator okna twojej konsoli HWND (SetConsoleTitle a później FindWindow) a jak to będziesz miał to funkcje z GDI+ chyba potrafią JPG czytać, nie wiem GDI+ nigdy nie urzywałem ale tak mi się obiło o uszy gdzieś. Zwykłe GDI nie potrafi jpg-ów czytac!

Opublikowano

@UP: szybszy ;p

Ale konsola to konsola, a nie okno, wiec w zaden sposob rysowac po niej inaczej niz znakami ascii nie mozna

  • Administratorzy
Opublikowano

W Turbo Pascalu kiedyś robiłem program który pokazywał obrazy, bodaj właśnie konsola na pełnym ekranie to była.

Opublikowano

Vardi: to sie mija z celem, bo moznaby od razu wtedy, nie bawiac sie w konsole, wywolac okno. tylko ze PhoenixPL nie chce sie bawic z oknami dlatego chce uzyc konsoli. wiec radze - od razu wez sie za okno, bo to az taka skomplikowana rzecz nie jest ;p

Opublikowano

wszystko w windowsie jest oknem(nawet okienko konsoli!!!) skoro tak... to można pobrać identyfikator okna i rysować po nim jak po normalnym oknie.

Za jakaś chwilke napisze kod rysujacy na konsoli bitmape... ale nie jpg bo nie mam czasu grzebac w GDI+

Opublikowano

Powodzenia, postawie piwo jak to zrobisz

Opublikowano

W katalogu programu musisz

wrzucić pliczek "obrazek.bmp"

no i tak jak ktoś wyżej pisał- lepszym rozwiązaniem jest nauczyć się okienek:)

 

// KonsolaBitmapa.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"
#include 
#include 
#include 

void rysuj_bmp(HDC hDC,HBITMAP hBmp, int ix, int iy)
{
   BITMAP bitmap;
   HDC hTempDC = CreateCompatibleDC( hDC);


   GetObject( hBmp, sizeof(BITMAP), &bitmap);


   SelectObject( hTempDC, hBmp);
   BitBlt( hDC, ix, iy, bitmap.bmWidth + ix, bitmap.bmHeight + iy, hTempDC, 0, 0, SRCCOPY);

   DeleteDC( hTempDC);
}

void cursoroff()
{
 CONSOLE_CURSOR_INFO ccinf;

 HANDLE _hcout = GetStdHandle(STD_OUTPUT_HANDLE);

 GetConsoleCursorInfo(_hcout,&ccinf);
 ccinf.bVisible = false;
 SetConsoleCursorInfo(_hcout,&ccinf);  
}


int main(int argc, char* argv[])
{
   char szTitle[] = "UNIKALNA NAZWA KONSOLI";
   HWND hOknoKonsoli;

   //kursor niewidoczny!
   cursoroff();

   //Szukamy okna konsoli
   SetConsoleTitle( szTitle);
   hOknoKonsoli = FindWindow( NULL, szTitle);

   //Wczytywanie pliku
   HBITMAP hBmp = (HBITMAP)LoadImage( NULL, "obrazek.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);

   //Czesc rysujaca
   HDC hDC = GetWindowDC( hOknoKonsoli);

   rysuj_bmp( hDC, hBmp, 10, 50);

   ReleaseDC( hOknoKonsoli, hDC);




   //Koniec aplikacji
   printf( "Nacisnij cos.....");
   while( ! kbhit( ))
       Sleep( 100);

   return 0;
}


Opublikowano

I tak nie obejdzie się bez:

 

#include <windows.h>

 

Na jedno wyjdzie...

 

@wojass:

 

Ten kod nie jest całkowicie dobry... ;]

 

@topic:

 

Weź się za WinAPI.

Jeśli w Dev-Cpp stworzysz nowy projekt (WinAPI), to by zamieścić obrazek użyjesz kilku linijek. Dosłownie.

No i ofc cała aplikacja wygląda o niebo lepiej... :P

Opublikowano
W X11 jest tak samo. LOLOLOL. ;DD Tylko że wiesz, to co ty zrobisz a bezpośrednie wyświetlenie w terminalu to jest co innego.

 

no tak :) przecież grafiki nie umieszczamy w buforze STD_OUT tylko w kontekscie okienka. Jak przejdziesz na Fullscreen to juz rysowanie niedziała bo zmienia się sposób wyświetlania. Chyba też to można obejść ale to gra niewarta swieczki:)

  • 3 tygodnie później...
Opublikowano

...

Nikt nie wspomniał o zmienianiu kolorów pisania?

Można zrobić konwerter z JPG do obrazków w formacie z 16 kolorami ;)

Umiem zrobić taki program, tylko z własnym formatem :]

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...