#ifndef PDF_UI_THUMBNAIL_H_
#define PDF_UI_THUMBNAIL_H_
#include "base/functional/callback.h"
#include "base/values.h"
#include "ui/gfx/geometry/size.h"
namespace gfx {
class SizeF;
}
namespace chrome_pdf {
class Thumbnail;
using SendThumbnailCallback = base::OnceCallback<void(Thumbnail)>;
class Thumbnail final {
public:
static gfx::Size CalculateImageSize(const gfx::SizeF& page_size,
float device_pixel_ratio);
Thumbnail(const gfx::SizeF& page_size, float device_pixel_ratio);
Thumbnail(Thumbnail&& other) noexcept;
Thumbnail& operator=(Thumbnail&& other) noexcept;
~Thumbnail();
float device_pixel_ratio() const { return device_pixel_ratio_; }
int stride() const { return stride_; }
bool should_render_blank() const { return should_render_blank_; }
const gfx::Size& image_size() const { return image_size_; }
base::Value::BlobStorage& GetImageData();
base::Value::BlobStorage TakeData();
private:
float device_pixel_ratio_;
gfx::Size image_size_;
bool should_render_blank_;
int stride_;
base::Value::BlobStorage image_data_;
};
}
#endif