c언어 콘솔창에서 이미지를 출력할수 있나요>?
3일째 날밤새고 찾아봤지만 어렵네요
C언어 프로젝트를 하는데요
콘솔창에서 이미지를 로드해서 화면에 출력하고 싶은데
그런 사례가 없어서 미치겠어요 ㅠㅠ
근데 외국사이트에서 하나 발견했는데요 ㅠ
http://stackoverflow.com/questions/12378642/c-pixels-in-console-window
여기서 찾아봤는데요
조금이나마 가능성을 찾았습니다 ㅠ
#include
#include
#include
using namespace std;
#define PI 3.14
int main()
{
//Get a console handle
HWND myconsole = GetConsoleWindow();
//Get a handle to device context
HDC mydc = GetDC(myconsole);
int pixel =0;
//Choose any color
COLORREF COLOR= RGB(255,255,255);
//Draw pixels
for(double i = 0; i < PI * 4; i += 0.05)
{
SetPixel(mydc,pixel,(int)(50+25*cos(i)),COLOR);
pixel+=1;
}
ReleaseDC(myconsole, mydc);
cin.ignore();
return 0;
}
여기 소스코드에서 이미지파일을 로드해서 화면에 출력하는 코드를 어캐 넣어야 할까요>?ㅠ
고수님들 조언 꼭 부탁드려요 ㅠㅠ
어차피 윈도용 프로그램이므로
거기서 새로 윈도나 다이얼로그를 하나 띄워서 거기에 그림을 뿌리면 됩니다. 꼭 콘솔 윈도 자체에 뿌려야 할 이유가 있는지 궁금합니다.
하긴 이미 윈도 핸들을 얻으셨으니 비트맵을 화면에 출력하는 예제라면 이미 지금상태에서도 다 갖다 쓸 수 있을 듯 합니다. GDI+쪽 예제들이 제일 쓰기 쉬울 듯.
--
ㅠㅠ 지금 학부단계의 실력이라...
조건이 콘솔창에서 뿌리는 조건으로 하라고 해서요 ㅠㅠ
윈도우 창 하나 띄우지 않고 콘솔에서 뿌리는건 불가능한건가요>ㅠ
예문 하나만이라도..ㅠ
문제 내신 분께 다시 한번 어떤 API 혹은
문제 내신 분께 다시 한번 어떤 API 혹은 라이브러리를 사용해야 하는지 물어 보세요.
그정도는 물어봐도 됩니다.
콘솔(아마도 명령 프롬프트를 말씀하시는거 같은데...)이 원래 텍스트 찍으라고 있는 환경이기 때문에
여기에 그래픽을 그리라는 것 자체가 이상한 요구입니다.
누가 문제 낸 것이 아니고 스스로 그렇게 설계를 한 거라면,
이상한 방식으로 하지 마시고 제발 평범하게 가세요.
framebuffer 쓰면 되는 거 아닌가요?
리눅스라면 Framebuffer 모드에서 하면 되고...
윈도우라면, 잘 모르겠네요. console 에 띄울 수 있나?
console 에서 윈도우 핸들을 찾으려면
화면 그릴 수 있는 window 가 떠 있어야 되고 + IPC 로 외부 입력을 받아서 window 에서 화면을 갱신해야 되고...
https://kldp.org/node/132763
https://kldp.org/node/132763
kldp에 2012년도에 관련된 질문이 올라온게 있어서 혹시 맞나싶어 링크 걸어드립니다..
간단히 만들어 보았습니다.
상황상 GDI+가 가장 사용하기 편한 것으로 생각되어 이걸 사용했습니다. GDIPlus.lib를 링커 옵션에 추가해주어야 합니다.
중간에 파일 경로 부분은 당연히 바꿔주셔야 합니다. 아니면 커맨드 라인으로 경로를 받게 해도 됩니다.
DC만 받아오면 콘솔창도 일반 윈도와 거의 흡사한 그래픽 표현이 가능합니다.
헌데 이런 걸 숙제로 낼 정도면 아마도 GDI+를 쓰는 것도 인정 안할지도 모르겠네요. (비트맵이면 GDI+를 안 써도 큰 차이는 안 나긴 합니다.)
--
감사합니다 ^^ㅋ 근데 사진이 크면 짤려나오는데요..ㅠ
사진이 콘솔기본창 (80 *25)보다 큰 사진은 잘려 나옵니다..
이부분은 어떻게 수정해야 할까요?
사진은 원본크기 그대로 나왔으면 완벽합니다 ㅎㅎ
그거야 당연히..
직접 콘솔윈도우의 크기를 키워야지요. 콘솔창 등록정보 보면 가로세로 크기 지정하는 부분이 있습니다. 한번 저장하면 다음번에는 자동으로 적용되어 있을겁니다.
프로그램 상으로 처리하려면 http://www.3dbuzz.com/forum/threads/102195-How-do-you-resize-a-console-window-in-C 여기 참고.
근데 그런 예외사항을 고려해봤자 어차피 바탕화면보다 큰 해상도의 그림은 제대로 출력 못할텐데요. 자동 리사이즈 출력이 더 나은 방법으로 보입니다.
--
댓글 달기