Example #1
0
int WriteJpg(const char * filename, const Image<T>& im, int quality)
{
    const unsigned char * ptr = (unsigned char*)(im.GetMat().data());
    const int w = im.Width(), h = im.Height();
    const int depth = sizeof( T ) / sizeof(unsigned char);
    std::vector<unsigned char> array( ptr , ptr + w*h*depth );
    return WriteJpg(filename, array, w, h, depth, quality);
}
int WriteJpg(const char * filename, const Image<T> & im, int quality)
{
  const unsigned char * ptr = (unsigned char*)(im.data());
  const int w = static_cast<int>( im.Width() );
  const int h = static_cast<int>( im.Height());
  const int depth = sizeof( T ) / sizeof(unsigned char);

  std::vector<unsigned char> array( ptr , ptr + w*h*depth );
  

  int res = WriteJpg(filename, array, w, h, depth, quality);

  return res;
}
Example #3
0
int WriteImage(const char * filename,
              const std::vector<unsigned char> & ptr,
              int w,
              int h,
              int depth){
  Format f = GetFormat(filename);

  switch (f) {
    case Pnm:
      return WritePnm(filename, ptr, w, h, depth);
    case Png:
      return WritePng(filename, ptr, w, h, depth);
    case Jpg:
      return WriteJpg(filename, ptr, w, h, depth);
    case Tiff:
      return WriteTiff(filename, ptr, w, h, depth);
    default:
      return 0;
  };
}
Example #4
0
bool ImageLoader::SaveImageToFile(const std::string& filename, const std::vector<Uint8>& pixels, unsigned int width, unsigned int height)
{
    // Make sure the image is not empty
    if (!pixels.empty() && width && height)
    {
        // Deduce the image type from its extension
        if (filename.size() > 3)
        {
            // Extract the extension
            std::string extension = filename.substr(filename.size() - 3);

            if (ToLower(extension) == "bmp")
            {
                // BMP format
                if (stbi_write_bmp(filename.c_str(), width, height, 4, &pixels[0]))
                    return true;
            }
            else if (ToLower(extension) == "tga")
            {
                // TGA format
                if (stbi_write_tga(filename.c_str(), width, height, 4, &pixels[0]))
                    return true;
            }
            else if(ToLower(extension) == "png")
            {
                // PNG format
                if (stbi_write_png(filename.c_str(), width, height, 4, &pixels[0], 0))
                    return true;
            }
            else if (ToLower(extension) == "jpg")
            {
                // JPG format
                if (WriteJpg(filename, pixels, width, height))
                    return true;
            }
        }
    }

    Err() << "Failed to save image \"" << filename << "\"" << std::endl;
    return false;
}