Пример #1
0
NITFAPI(nitf_ImageSegment *) nitf_ImageSegment_construct(nitf_Error *
        error)
{
    nitf_ImageSegment *segment =
        (nitf_ImageSegment *) NITF_MALLOC(sizeof(nitf_ImageSegment));

    if (!segment)
    {
        nitf_Error_init(error, NITF_STRERROR(NITF_ERRNO),
                        NITF_CTXT, NITF_ERR_MEMORY);
        return NULL;
    }

    /*  This object gets created NOW  */
    segment->subheader = NULL;

    /*  The image offset in the file  */
    segment->imageOffset = 0;
    /*  The image end  (offset + length image)  */
    segment->imageEnd = 0;
    segment->subheader = nitf_ImageSubheader_construct(error);
    if (!segment->subheader)
    {
        nitf_ImageSegment_destruct(&segment);
        return NULL;
    }
    /*  Yes!  We have a success  */
    return segment;
}
Пример #2
0
ImageSubheader::ImageSubheader() throw(nitf::NITFException)
{
    setNative(nitf_ImageSubheader_construct(&error));
    getNativeOrThrow();
    setManaged(false);
}
Пример #3
0
int main(int argc, char *argv[])
{
    nitf_FileHeader *fhdr;          /* File header supplying fields */
    nitf_ImageSubheader *subhdr;    /* Subheader supplying fields */
    nitf_Uint32 valueU32Before;     /* Value buffer */
    nitf_Uint32 valueU32After;      /* Value buffer */
    nitf_Uint64 valueU64Before;     /* Value buffer */
    nitf_Uint64 valueU64After;      /* Value buffer */
    char *valueStrBefore;           /* Value buffer */
    /* Value buffer */
    static char valueStrAfter[STR_LEN + 2];
    nitf_Uint32 valueStrLen;        /* Value buffer */
    static nitf_Error errorObj;     /* Error object for messages */
    nitf_Error *error;              /* Pointer to the error object */

    error = &errorObj;

    fhdr = nitf_FileHeader_construct(error);
    if (fhdr == NULL)
    {
        nitf_Error_print(error, stdout, "Error creating image subheader");
        exit(EXIT_FAILURE);
    }

    subhdr = nitf_ImageSubheader_construct(error);
    if (subhdr == NULL)
    {
        nitf_Error_print(error, stdout, "Error creating image subheader");
        exit(EXIT_FAILURE);
    }

    /*    Set some fields (should work) */
    valueU32Before = 12345;
    if (nitf_Field_setUint32(subhdr->NITF_XBANDS, valueU32Before, error))
        fprintf(stdout,
                "Set of XBANDS via nitf_Field_setUint32 worked as expected\n");
    else
        nitf_Error_print(error, stdout,
                         "Unexpected error setting XBANDS via nitf_Field_setUint32");

    nitf_Field_get(subhdr->NITF_XBANDS, (NITF_DATA *) & valueU32After,
                   NITF_CONV_UINT, NITF_INT32_SZ, error);
    fprintf(stdout,
            "Set of XBANDS via nitf_Field_setUint32 original %d readback %d\n",
            valueU32Before, valueU32After);

    valueU32Before = 1234;
    if (nitf_Field_setUint32(subhdr->NITF_COMRAT, valueU32Before, error))
        fprintf(stdout,
                "Set of COMRAT via nitf_Field_setUint32 worked as expected\n");
    else
        nitf_Error_print(error, stdout,
                         "Unexpected error setting COMRAT via nitf_Field_setUint32");

    nitf_Field_get(subhdr->NITF_COMRAT, (NITF_DATA *) & valueU32After,
                   NITF_CONV_UINT, NITF_INT32_SZ, error);
    fprintf(stdout,
            "Set of COMRAT via nitf_Field_setUint32 original %d readback %d\n",
            valueU32Before, valueU32After);

    valueU64Before = 11234567890ll;
    if (nitf_Field_setUint64(fhdr->NITF_FL, valueU64Before, error))
        fprintf(stdout,
                "Set of FL via nitf_Field_setUint64 worked as expected\n");
    else
        nitf_Error_print(error, stdout,
                         "Unexpected error setting FL via nitf_Field_setUint64");

    nitf_Field_get(fhdr->NITF_FL, (NITF_DATA *) & valueU64After,
                   NITF_CONV_UINT, NITF_INT64_SZ, error);
    fprintf(stdout,
            "Set of FL via nitf_Field_setUint64 original %llu readback %llu\n",
            valueU64Before, valueU64After);

    valueStrBefore = "TestStr";
    if (nitf_Field_setString(subhdr->NITF_IID2, valueStrBefore, error))
        fprintf(stdout,
                "Set of IID2 via nitf_Field_setString worked as expected\n");
    else
        nitf_Error_print(error, stdout,
                         "Unexpected error setting IID2 via nitf_Field_setString");

    nitf_Field_get(subhdr->NITF_IID2, (NITF_DATA *) valueStrAfter,
                   NITF_CONV_STRING, STR_LEN, error);
    fprintf(stdout,
            "Set of IID2 via nitf_Field_setString original %s readback %s\n",
            valueStrBefore, valueStrAfter);

    valueStrBefore = "1234";
    if (nitf_Field_setString(subhdr->NITF_NCOLS, valueStrBefore, error))
        fprintf(stdout,
                "Set of NCOLS via nitf_Field_setString worked as expected\n");
    else
        nitf_Error_print(error, stdout,
                         "Unexpected error setting NCOLS via nitf_Field_setString");

    nitf_Field_get(subhdr->NITF_NCOLS, (NITF_DATA *) valueStrAfter,
                   NITF_CONV_STRING, STR_LEN, error);
    fprintf(stdout,
            "Set of NCOLS via nitf_Field_setString original %s readback %s\n",
            valueStrBefore, valueStrAfter);

    /*    Set some fields (should fail) */

    valueU32Before = 123;
    if (nitf_Field_setUint32(fhdr->NITF_FBKGC, valueU32Before, error))
        fprintf(stdout,
                "Set of FBKGC via nitf_Field_setUnit32 worked expected error\n");
    else
        nitf_Error_print(error, stdout,
                         "Expected error setting FBKGC via nitf_Field_setUint32");

    valueStrBefore = "123";
    if (nitf_Field_setString(fhdr->NITF_FBKGC, valueStrBefore, error))
        fprintf(stdout,
                "Set of FBKGC via nitf_Field_setString worked expected error\n");
    else
        nitf_Error_print(error, stdout,
                         "Expected error setting FBKGC via nitf_Field_setString");

    valueStrBefore = "12g";
    if (nitf_Field_setString(subhdr->NITF_NCOLS, valueStrBefore, error))
        fprintf(stdout,
                "Set of NCOLS via nitf_Field_setString worked expected error\n");
    else
        nitf_Error_print(error, stdout,
                         "Expected error setting NCOLS via nitf_Field_setString");

    valueU32Before = 3;
    if (nitf_Field_setUint32(subhdr->NITF_NBANDS, valueU32Before, error))
        fprintf(stdout,
                "Set of NBANDS via nitf_Field_setUint32 worked expected error\n");
    else
        nitf_Error_print(error, stdout,
                         "Expected error setting NBANDS via nitf_Field_setUint32");

    return 0;

}