對於每張圖片,我們都可以找到它的寬高比或寬高比或高/寬。 假設您的單元具有已知的寬度和高度您可以確定它是否太窄或太短。此外,您可以用下面的公式計算出它的新高度和寬度:
newWidth = cellheight * oldwidth/oldheight
newHeight = cellwidth * oldheight/oldwidth
CellWidth - NewWidth = 2X PaddingLeft
CellHeight - NewHeight = 2x PaddingTop
所以你現在需要做的只是將結果除以2並將其轉換爲整數。
我實現對數據庫中的每個圖像(其實我甩開SQLite數據庫這些圖像)在SubReportProcessing事件以下干將對我的主報告,我只是我所有的圖片添加爲數據源。
public class ImageModel
{
public int ImgId { get; set; }
public byte[] Blob { get; set; }
public string PaddingLeft
{
get
{
var img = byteArrayToImage(Blob);
//cell width and height must be specified in points
//(cellwidth - cellheight * image aspect ratio)/2
var result = (int)((256.0f - 256.0f * ((float)img.Width/(float)img.Height))/(float)2) + "pt";
return result;
}
}
public string PaddingTop
{
get
{
var img = byteArrayToImage(Blob);
var result = (int)((256.0f - 256.0f * ((float)img.Height/(float)img.Width))/(float)2) + "pt";
return result;
}
}
該操作我現在可以設置填充值後在圖像屬性如下:
=Fields!PaddingLeft.Value
=Fields!PaddingTop.Value
希望幫助!
乾杯;)