Graphisoft®

API Development KitVersion: 18

APIAny_ConvertMimePictureID

MIME 타입들을 사용하여 그림을 다른 이미지 포맷으로 변환합니다.

    GSErrCode ACAPI_Goodies (
        APIAny_ConvertMimePictureID,
        API_MimePicture*     mimePicture
    );

 

파라미터

mimePicture
[in/out] 소스/목적지 그림의 파라미터들입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
입력 파라미터들이 올바로 주어지지 않았습니다. (API_MimePicture를 보십시오)
APIERR_MEMFULL
새로운 pictHdl을 생성하기에는 메모리가 부족합니다.

다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.

 

설명

이 함수는 하나의 표준 이미지 포맷에서 다른 포맷으로 그림을 변환하는 데 사용합니다. 이미지 포맷들은 MIME (Multi-purpose Internet Mail Extensions) 타입들로 지정합니다.

가장 일반적으로 사용되느는 이미지 포맷들의 MIME 타입들입니다:

Windows Bitmap image/x-bmp
GIF image/gif
TIFF image/tiff
JPEG image/jpeg
Pict image/pict
SGI image/x-sgi
Photoshop Image image/x-photoshop
PNG image/png
MacPaint Image image/x-macpaint
Truevision TGA image/x-targa
QuickTime Image image/x-quicktime

Windows의 경우 장치 독립 비트맵을 생성하기 위해 특수 출력 타입 "vnd/DIB"를, Macintosh의 경우 PicHandle을 생성하기 위해 "vnd/PICH"를 전달할 수 있습니다.

하나의 픽셀 깊이로부터 다른 픽셀 깊이로 변환하는 것은 현재 지원되지 않습니다.

MIME 타입들 대신 API_PictureFormat 식별자들로 이미지들을 변환하기 위해 APIAny_ConvertPictureID goody 함수를 사용할 수 있습니다.

더 이상 필요하지 않으면 리턴된 outputHdl을 폐기하는 것을 기억하십시오.

API_MimePicture structure의 설명에서 더 많은 옵션들을 보십시오.

 

예제

평면도 상에 배치된 TIFF 그림을 PNG 포맷 이미지로 변환하기:

GSErrCode ConvertPicture (const API_Guid& pictureGuid)
{
    API_Element element;
    BNZeroMemory (&element, sizeof (API_Element));
    element.header.guid = pictureGuid;

    GSErrCode   err = ACAPI_Element_Get (&element);
    if (err == NoError && element.picture.storageFormat == APIPictForm_TIFF) {
        API_ElementMemo memo;
        BNZeroMemory (&memo, sizeof (API_ElementMemo));
        err = ACAPI_Element_GetMemo (pictureGuid, &memo);
        if (err == NoError) {
            API_MimePicture mime;
            BNZeroMemory (&mime, sizeof (API_MimePicture));
            mime.mimeIn = "image/tiff";
            mime.inputHdl = memo.pictHdl;
            mime.mimeOut = "image/png";
            mime.inContainsMime = false;
            mime.outDepth = (API_ColorDepthID) -1;

            err = ACAPI_Goodies (APIAny_ConvertMimePictureID, &mime, NULL);
            if (err == NoError) {
                /* mime.outputHdl이 PNG 포맷 형태의 이미지를 포함하고 있음 */

                /* 그림 변경, 이미지 파일로 저장, 또는 기타... */

                /* 메모리 누수를 막기 위함 */
                BMKillHandle (&mime.outputHdl);
            }

            ACAPI_DisposeElemMemoHdls (&memo);
        }
    }

    return err;
}

API DevKit의 DG_Test 예제 프로젝트에서 MIME 타입 이미지 변환 사용에 대한 또 다른 샘플을 보십시오.

 

요구사항

버전: API 5.1 또는 이후
헤더: APIdefs_Goodies.h

 

참고사항

API_MimePicture
API_PictureFormat
APIAny_ConvertPictureID
ACAPI_Goodies
API 함수