bool ImageDocument::imageFitsInWindow() { if (!m_imageElement) return true; FrameView* view = this->view(); if (!view) return true; LayoutSize imageSize = this->imageSize(); IntSize viewportSize = view->visibleSize(); return imageSize.width() <= viewportSize.width() && imageSize.height() <= viewportSize.height(); }
float ImageDocument::scale() { if (!m_imageElement) return 1; FrameView* view = this->view(); if (!view) return 1; LayoutSize imageSize = this->imageSize(); IntSize viewportSize = view->visibleSize(); float widthScale = viewportSize.width() / imageSize.width().toFloat(); float heightScale = viewportSize.height() / imageSize.height().toFloat(); return std::min(widthScale, heightScale); }