/// <summary> /// Scales top mipmap and DESTROYS ALL OTHERS. /// </summary> /// <param name="scale">Scaling factor. </param> public void Resize(double scale) { MipMap closestMip = null; double newScale = 0; double desiredSize = MipMaps[0].Width * scale; double min = double.MaxValue; foreach (var mip in MipMaps) { double temp = Math.Abs(mip.Width - desiredSize); if (temp < min) { closestMip = mip; min = temp; } } newScale = desiredSize / closestMip.Width; MipMaps[0] = ImageEngine.Resize(closestMip, newScale); MipMaps.RemoveRange(1, NumMipMaps - 1); }
/// <summary> /// Scales top mipmap and DESTROYS ALL OTHERS. /// </summary> /// <param name="scale">Scaling factor. </param> /// <param name="mergeAlpha">True = flattens alpha, directly affecting RGB.</param> public void Resize(double scale, bool mergeAlpha) { MipMaps[0] = ImageEngine.Resize(MipMaps[0], scale, mergeAlpha); MipMaps.RemoveRange(1, NumMipMaps - 1); }