IntSize ImageDecoder::size() const { if (!m_nativeDecoder) return IntSize(); COMPtr<IWICBitmapFrameDecode> frame; HRESULT hr = m_nativeDecoder->GetFrame(0, &frame); if (!SUCCEEDED(hr)) return IntSize(); UINT width, height; hr = frame->GetSize(&width, &height); if (!SUCCEEDED(hr)) return IntSize(); return IntSize(width, height); }
IntSize ImageDecoder::frameSizeAtIndex(size_t index, SubsamplingLevel subsamplingLevel) const { if (!m_nativeDecoder) return IntSize(); COMPtr<IWICBitmapFrameDecode> frame; HRESULT hr = m_nativeDecoder->GetFrame(index, &frame); if (!SUCCEEDED(hr)) return IntSize(); UINT width, height; hr = frame->GetSize(&width, &height); if (!SUCCEEDED(hr)) return IntSize(); return IntSize(width, height); }