예제 #1
0
파일: phoexif.c 프로젝트: akkana/pho
const char* ExifGetString(ExifFields_e field)
{
    if (!HasExif()) {
        fprintf(stderr, "No info!\n");
        return 0;
    }

    switch (field)
    {
      case ExifCameraMake:
          return ImageInfo.CameraMake;
      case ExifCameraModel:
          return ImageInfo.CameraModel;
      case ExifDate:
          return ImageInfo.DateTime;
      case ExifOrientation:
          return OrientTab[ImageInfo.Orientation];
      case ExifColor:
          return ItoS(ImageInfo.IsColor);
      case ExifFlash:
          return ItoS(ImageInfo.FlashUsed);
      case ExifFocalLength:
          return FtoS(ImageInfo.FocalLength);
      case ExifExposureTime:
          return FtoS(ImageInfo.ExposureTime);
      case ExifAperture:
          return FtoS(ImageInfo.ApertureFNumber);
      case ExifDistance:
          return FtoS(ImageInfo.Distance);
      case ExifCCDWidth:
          return FtoS(ImageInfo.CCDWidth);
      case ExifExposureBias:
          return FtoS(ImageInfo.ExposureBias);
      case ExifWhiteBalance:
          return ItoS(ImageInfo.Whitebalance);
      case ExifMetering:
          return ItoS(ImageInfo.MeteringMode);
      case ExifExposureProgram:
          return ItoS(ImageInfo.ExposureProgram);
      case ExifISO:
          return ItoS(ImageInfo.ISOequivalent);
      case ExifCompression:
          return ItoS(ImageInfo.CompressionLevel);
      case ExifComments:
          return ImageInfo.Comments;
      case ExifThumbnailSize:
          return ItoS(ImageInfo.ThumbnailSize);
    }

    return 0;
}
예제 #2
0
void View::renderOverlay()
{
	// Iterate over all colonies, get the strainID/size and plot
	std::vector<Colony*> allColonies = *(model->getAllColonies());
	int lineHeight = 18;
	int lineCount = 0;
	map<string, int>* strainMap = model->getAllStrains();
	map<string, int>::const_iterator strainIter;
	string colonyStrainName;
	for (strainIter = strainMap->begin(); strainIter != strainMap->end(); strainIter++)
	{
		int cellCount = 0;
		for (unsigned int colonyNo = 0; colonyNo < allColonies.size(); colonyNo++)
		{
			colonyStrainName = model->getStrain(*allColonies[colonyNo]);
			if (colonyStrainName == strainIter->first)
			{
				cellCount += allColonies[colonyNo]->getSize();
			}
		}
		renderText(border + 20, (border + 20 + (lineCount * lineHeight)),
				strainIter->first + " : " + ItoS(cellCount), overlaySurface, 255, 255, 255, false);
		lineCount++;
	}
	renderText(border + 20, (border + 20 + (lineCount * lineHeight)),
			"Nutr. : " + FtoS(model->getAgar()->getNutrientLevel(), 2), overlaySurface, 255, 255, 255, false);
	lineCount++;
	renderText(border + 20, (border + 20 + (lineCount * lineHeight)),
			"Gens. : " + ItoS(model->getIterations()) + " " + iterationsToFormattedTime(), overlaySurface,
			255, 255, 255, false);
	lineCount++;
	// Render outer box
	int height = lineCount * lineHeight;
	int width = 220;
	drawLine(border + 18, border + 18, width + 18, border + 18, overlaySurface, Colours::white);
	drawLine(width + 18, border + 18, width + 18, border + 18 + height, overlaySurface, Colours::white);
	drawLine(width + 18, border + 18 + height, border + 18, border + 18 + height, overlaySurface,
			Colours::white);
	drawLine(border + 18, border + 18 + height, border + 18, border + 18, overlaySurface, Colours::white);
}