2012-11-11 3 views
0

함수에서 많은 이미지를로드하고 하나의 변수에 할당하여 해당 변수를 호출하고 해당 이미지에 대한 정보를 보유하는 방법을 알고 싶습니다. 예를 들어다른 값을 보유하기위한 데이터 유형 C++

:

src = tile1.png 
x = 10 
y = 11 

내가 데이터 유형의 어떤 종류의 필요?

목표는 텍스트 파일의 선을 반복하여 각 이미지를 관련 정보와 함께로드하여 이미지가 사전로드되어 화면에 표시 될 준비가되도록하는 것입니다. 나는 그것이 어떻게 행해질 지 조금만 붙어있다.

+0

어쩌면 내가 질문을 오해 ...하지만 당신은 당신이 원하는 속성 정보가있는 클래스를 생성하지 않을까요? – Genzume

+3

간단한 ...'struct' /'class'는 어떻습니까? 당신에게 [좋은 책] (http://tinyurl.com/so-cxxbooks)이 필요하다고 생각됩니다. – Xeo

+0

@Tyler 그래서 모든 이미지에 대해'ClassName unique_name();'과 같이 한 번에 하나씩 생성해야합니다. – Sir

답변

1

struct.

예 :

#include <iostream> 
#include <string> 
using namespace std; 

struct a_new_datatype{ 

    string name; 
    int age; 
    char gender; 


}; 

int main(){ 

    a_new_datatype my_own_datatype; 

    my_own_datatype.name = "Christopher"; 
    my_own_datatype.age = 34; 
    my_own_datatype.gender = 'M'; 

    cout << "Name: " << my_own_datatype.name << endl; 
    cout << "Age: " << my_own_datatype.age << endl; 
    cout << "Gender: " << my_own_datatype.gender << endl; 

    return 0; 
} 
+0

감사합니다 :) 이것으로 바이올린을 가지게 될 것입니다! – Sir

2

자신의 시스템을 롤업하려면 추상 기본 Image 클래스를 만들 수 있습니다. 그런 다음 처리 할 각 이미지 유형에 대한 구체적인 하위 클래스를 만듭니다 (예 : ImageJpeg, ImagePng). 이러한 구체적인 하위 클래스는 libjpeg 또는 libpng과 같은 이미지로드 라이브러리 주변의 간단한 래퍼 일 수 있습니다. 구체적인 객체를 생성하지만 추상 클래스의 std::shared_ptr을 반환하는 팩토리 함수가 있어야합니다. 이들은 std::vector과 같은 표준 컨테이너에 저장할 수 있습니다.

그러나 특정 이미지 (위에서 언급 한 libjpeg/libpng)와 일반 이미지 (SDL_Image 또는 Boost GIL)가 이미 많이 있습니다. 그들 중 일부는 이미 C++ 클래스를 가지고 있으며 일부 클래스는 래핑 할 필요가 없습니다.