解决生成ofd文件时实际dpi不正确的问题
This commit is contained in:
parent
c8715dea0b
commit
d17e7f92c7
|
@ -487,10 +487,26 @@ HGResult HGOfdImageWriterImpl::SaveJpegImage(HGImage image, const HGJpegSaveInfo
|
|||
return HGBASE_ERR_FAIL;
|
||||
}
|
||||
|
||||
HGUInt xDpi, yDpi;
|
||||
HGBase_GetImageDpi(image, &xDpi, &yDpi);
|
||||
if (NULL != info)
|
||||
{
|
||||
if (HGIMGFMT_JPEGDENUNIT_INCH == info->densityUnit)
|
||||
{
|
||||
xDpi = info->xDensity;
|
||||
yDpi = info->yDensity;
|
||||
}
|
||||
else if (HGIMGFMT_JPEGDENUNIT_CENTIMETER == info->densityUnit)
|
||||
{
|
||||
xDpi = (uint32_t)((double)info->xDensity / 0.393700787 + 0.5);
|
||||
yDpi = (uint32_t)((double)info->yDensity / 0.393700787 + 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
HGImageInfo imgInfo;
|
||||
HGBase_GetImageInfo(image, &imgInfo);
|
||||
HGFloat physicalWidth = 25.4f * (HGFloat)imgInfo.width / 96.0f;
|
||||
HGFloat physicalHeight = 25.4f * (HGFloat)imgInfo.height / 96.0f;
|
||||
HGFloat physicalWidth = 25.4f * (HGFloat)imgInfo.width / (HGFloat)xDpi;
|
||||
HGFloat physicalHeight = 25.4f * (HGFloat)imgInfo.height / (HGFloat)yDpi;
|
||||
|
||||
AddContentXmlFile(m_curImgIndex, physicalWidth, physicalHeight);
|
||||
++m_curImgIndex;
|
||||
|
|
Loading…
Reference in New Issue