0

MaxWidthとMaxHeightをサポートする以下のようなImageResizerを探しています...
どこで見つけることができますか?
以下のモジュールは、私にとって必要のない他の多くの仕事をします。
フォーマットを変更し、maxwidthとmaxheightをサポートしたいだけです。

ImageResizer

4

2 に答える 2

2

最大幅と最大高さを適用し、アスペクト比を維持するラッパーを作成できます。

たとえば、640 x 120の画像があり、最大値が1,920x1,440であるとします。ここで、その画像をできるだけ大きくしたいので、次のように記述します。

ResizeImage(image, 1920, 1440)

そうすると、アスペクト比が撮影されます。

既存の画像のアスペクト比を計算し、値を調整する必要があります。

// Compute existing aspect ratio
double aspectRatio = (double)image.Width / image.Height;

// Clip the desired values to the maximums
desiredHeight = Math.Min(desiredHeight, MaxHeight);
desiredWidth = Math.Min(desiredWidth, MaxWidth);

// This is the aspect ratio if you used the desired values.
double newAspect = (double)desiredWidth / desiredHeight;

if (newAspect > aspectRatio)
{
    // The new aspect ratio would make the image too tall.
    // Need to adjust the height.
    desiredHeight = (int)(desiredWidth / aspectRatio);
}
else if (newAspect < aspectRatio)
{
    // The new aspect ratio would make the image too wide.
    // Need to adjust the width.
    desiredWidth = (int)(desiredHeight * aspectRatio);
}

// You can now resize the image using desiredWidth and desiredHeight
于 2011-05-19T15:22:57.663 に答える
1

ライブラリが必要以上のことをするかどうかは関係ありません。それがあなたがそれを必要とすることをするならば、それを使ってください。余分なものはあなたをまったく損なうことはありません。

于 2011-05-19T15:21:26.807 に答える