我正在嘗試裁剪圖像並將其保存到服務器。我遇到的問題是,我認爲裁剪過程似乎對jpeg和jpg圖像有副作用。 我嘗試的過程方法與我在許多關於在asp.net中裁剪圖像的帖子中發現的過程方法稍有不同,因爲我正在使用字節[]作爲圖像。在Visual Studio中使用圖形裁剪圖像更改文件類型標題
public static byte[] CropImage(byte[] imgBytes, Rectangle rec)
{
MemoryStream ms = new MemoryStream(imgBytes);
Image img = Image.FromStream(ms);
Bitmap croppedBmpImage = new Bitmap(200, 200);
using (Graphics gr = Graphics.FromImage(croppedBmpImage))
{
gr.SmoothingMode = SmoothingMode.HighQuality;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(img, new Rectangle(0, 0, 200, 200),
rec,
GraphicsUnit.Pixel);
}
ImageConverter converter = new ImageConverter();
byte[] result = (byte[]) converter.ConvertTo(croppedBmpImage, typeof(byte[]));
croppedBmpImage.Dispose();
return result;
}
在我的電腦中沒有任何預覽問題,圖像被正確裁剪。不過,我正在使用Alfresco來存儲圖像,我發現應用程序內的縮略圖預覽不適用於圖像。從我看到的這隻發生在.jpg和.jpeg圖像上。從我讀的.jpg和.jpeg圖像存儲一些元數據,似乎從我的裁剪圖像中刪除。 當我用記事本打開原始.jpg或.jpeg圖像時,我注意到它開始於某些元數據細節之王,如JFIF。 (ΨΰJFIF H HΫ「) ,當我用記事本打開的PNG圖片我注意到它與
‰PNG
我裁剪圖像開始另一方面開始像修剪處理後太那個。有沒有辦法保留原始的元數據或從一開始就以.jpg文件的形式裁剪圖像,還是我在這裏丟失了別的東西?
所以,如果你存儲的圖像不裁剪會發生什麼?它工作正常嗎? – SeM
如果我不使用裁剪過程它正常工作是的。它不會在Alfresco中正確地丟失任何元數據和圖像預覽。 –
但是,爲什麼你需要保留這些數據呢?無論如何,圖像本身都會被裁剪掉,這樣肯定會丟失數據。 – Nyerguds