Exemple #1
0
int main(int argc,char *argv[])
{
  int i,j,flag,n;
  struct image avg,max,raw;
  
  for (flag=0,i=1,n=0;i<argc;i++,n++) {
    printf("%d %s\n",i,argv[i]);
    // Read image
    raw=read_jpg(argv[i]);    

    // If first image, initialize
    if (flag==0) {
      avg.nx=raw.nx;
      avg.ny=raw.ny;
      avg.nz=raw.nz;
      avg.z=(float *) malloc(sizeof(float)*avg.nx*avg.ny*avg.nz);
      for (j=0;j<avg.nx*avg.ny*avg.nz;j++)
	avg.z[j]=0.0;

      max.nx=raw.nx;
      max.ny=raw.ny;
      max.nz=raw.nz;
      max.z=(float *) malloc(sizeof(float)*max.nx*max.ny*max.nz);
      for (j=0;j<max.nx*max.ny*max.nz;j++)
	max.z[j]=0.0;

      flag=1;
    }
    
    // Add values
    for (j=0;j<avg.nx*avg.ny*avg.nz;j++)
      avg.z[j]+=raw.z[j];

    // Add values
    for (j=0;j<avg.nx*avg.ny*avg.nz;j++)
      if (raw.z[j]>max.z[j])
	max.z[j]=raw.z[j];

    // Free
    free(raw.z);
  }

  // Average;
  for (j=0;j<avg.nx*avg.ny*avg.nz;j++)
    avg.z[j]/=(float) n;

  // Write
  write_jpg("average.jpg",avg);
  write_jpg("maximum.jpg",max);

  // Free
  free(avg.z);
  free(max.z);

  return 0;
}
Exemple #2
0
void write_img(PDF pdf, image_dict * idict)
{
    if (img_state(idict) < DICT_WRITTEN) {
        report_start_file(filetype_image, img_filepath(idict));
        switch (img_type(idict)) {
        case IMG_TYPE_PNG:
            write_png(pdf, idict);
            break;
        case IMG_TYPE_JPG:
            write_jpg(pdf, idict);
            break;
        case IMG_TYPE_JP2:
            write_jp2(pdf, idict);
            break;
        case IMG_TYPE_JBIG2:
            write_jbig2(pdf, idict);
            break;
        case IMG_TYPE_PDFMEMSTREAM:
        case IMG_TYPE_PDF:
            write_epdf(pdf, idict,(int) pdf_suppress_optional_info);
            break;
        case IMG_TYPE_PDFSTREAM:
            write_pdfstream(pdf, idict);
            break;
        default:
            normal_error("pdf backend","internal error: writing unknown image type");
        }
        report_stop_file(filetype_image);
        if (img_type(idict) == IMG_TYPE_PNG) {
            write_additional_png_objects(pdf);
        }
    }
    if (img_state(idict) < DICT_WRITTEN)
        img_state(idict) = DICT_WRITTEN;
}
Exemple #3
0
bool GenericImage::save(const char* filename)
{
    const char *ext = filename + strlen(filename) - 4;
    
    if (!strcmp(ext, ".png") || !strcmp(ext, ".PNG"))
        write_png(filename);
    else if (!strcmp(ext, ".jpg") || !strcmp(ext, ".JPG"))
        write_jpg(filename, 100);
//    else if (!strcmp(ext, ".raw") || !strcmp(ext, ".RAW"))
//        write_raw(filename);
    else return false;
	
    return true;
}