如何在保持寬高比的同時將JPEG圖像的大小調整爲固定寬度?以一種簡單的方式,同時保持質量。將JPEG圖像調整爲固定寬度,同時保持寬高比不變
5
A
回答
1
如果將寬度減少25%爲固定值,則必須將高度減少25%。
如果將寬度增加25%爲固定值,則必須將高度增加25%。
這真的很簡單。
0
我認爲如果你搜索它們,這裏有很多這樣的例子。這裏是一個我經常使用...調用代碼的
public static Stream ResizeGdi(Stream stream, System.Drawing.Size size)
{
Image image = Image.FromStream(stream);
int width = image.Width;
int height = image.Height;
int sourceX = 0, sourceY = 0, destX = 0, destY = 0;
float percent = 0, percentWidth = 0, percentHeight = 0;
percentWidth = ((float)size.Width/(float)width);
percentHeight = ((float)size.Height/(float)height);
int destW = 0;
int destH = 0;
if (percentHeight < percentWidth)
{
percent = percentHeight;
}
else
{
percent = percentWidth;
}
destW = (int)(width * percent);
destH = (int)(height * percent);
MemoryStream mStream = new MemoryStream();
if (destW == 0
&& destH == 0)
{
image.Save(mStream, System.Drawing.Imaging.ImageFormat.Jpeg);
return mStream;
}
using (Bitmap bitmap = new Bitmap(destW, destH, System.Drawing.Imaging.PixelFormat.Format48bppRgb))
{
using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap))
{
//graphics.Clear(Color.Red);
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.DrawImage(image,
new Rectangle(destX, destY, destW, destH),
new Rectangle(sourceX, sourceY, width, height),
GraphicsUnit.Pixel);
}
bitmap.Save(mStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
mStream.Position = 0;
return mStream as Stream;
}
例...
Stream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.None);
resizedStream = ImageUtility.ResizeGdi(stream, new System.Drawing.Size(resizeWidth, resizeHeight));
0
代碼項目上快速搜索發現下面的文章。它允許調整接受布爾值的圖像以限制新圖像以保持原始縱橫比。我不確定質量如何,因爲沒有提供截圖。見文章here
1
假設有一個(double width
)變量:
Image imgOriginal = Bitmap.FromFile(path);
double height = (imgOriginal.Height * width)/imgOriginal.Width;
Image imgnew = new Bitmap((int)width, (int)height, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(imgnew);
g.DrawImage(imgOriginal, new Point[]{new Point(0,0), new Point(width, 0), new Point(0, height)}, new Rectangle(0,0,imgOriginal.Width, imgOriginal.Height), GraphicsUnit.Pixel);
在端you'll具有寬度x高度新的圖像,那麼,您需要同時刷新圖形e保存imgnew。
17
這將在規模僅垂直軸:
public static Image ResizeImageFixedWidth(Image imgToResize, int width)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = ((float)width/(float)sourceWidth);
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
相關問題
- 1. 保持固定高度的高寬比
- 2. 將位圖調整爲固定值,但不改變寬高比
- 3. 調整圖像大小,同時保持寬高比的Java
- 4. javascript將圖像調整爲全屏並保持寬高比
- 5. CSS:100%寬度或高度,同時保持寬高比?
- 6. 保持圖像寬高比,並使用寬度百分比
- 7. App Engine圖像大小調整不保持高寬比?
- 8. 自動調整表格行高保持寬度固定
- 9. IE8不保留寬高比時僅寬度或高度改變
- 10. 在css中保持寬高比與圖像寬度
- 11. 具有固定高度,寬度自動和保持比例的圖像
- 12. Jquery,通過保持高度不變的寬度來調整圖像大小
- 13. 響應 - 在保持高度的同時調整DIV寬度
- 14. 將圖像大小調整爲平方div保持長寬比
- 15. 將每個尺寸的圖像調整爲固定的寬度和高度
- 16. 調整圖像大小保持高寬比白線邊框
- 17. 調整圖像大小 - 保持寬高比
- 18. 如何調整移動設備上的CSS圖像,同時保持寬高比
- 19. 在保持寬高比的同時調整窗體大小
- 20. 調整圖像大小(image_lib),保持寬高比,但縮放到最小可能超過寬度和高度
- 21. imagecopyresampled調整至最大寬度或高度,但保持比
- 22. 保持圖像的寬高比?
- 23. React Native保持寬高比圖像ios
- 24. Scale ImageView適合屏幕寬度/高度,同時保持寬高比
- 25. 無法將圖像的寬度和高度固定爲100%
- 26. 將圖像保存爲120高度x比例寬度 - VB
- 27. Android顯示圖像,同時保持屏幕高寬比
- 28. jQuery調整高寬比爲
- 29. 使視頻寬高比保持最大100%寬度和高度
- 30. Imageview保持寬高比,填充寬度和高度
他希望保持寬度不變,這是不行的 – rboarman