예제 #1
0
        /// <summary>
        /// Corrects the gamma.
        /// </summary>
        /// <param name="image">The image.</param>
        /// <param name="gamma">The gamma.</param>
        public void CorrectGamma(TexImage image, double gamma)
        {
            if (gamma <= 0)
            {
                Log.Error("The gamma must be a positive float.");
                throw new TextureToolsException("The gamma must be a positive float.");
            }

            if (image.Format.IsCompressed())
            {
                Log.Warning("You can't correct gamme on a compressed texture. It will be decompressed first..");
                Decompress(image, image.Format.IsSRgb());
            }

            var request = new GammaCorrectionRequest(gamma);

            ExecuteRequest(image, request);
        }
예제 #2
0
        /// <summary>
        /// Corrects the gamma.
        /// </summary>
        /// <param name="image">The image.</param>
        /// <param name="libraryData">The library data.</param>
        /// <param name="request">The request.</param>
        public void CorrectGamma(TexImage image, FreeImageTextureLibraryData libraryData, GammaCorrectionRequest request)
        {
            Log.Info("Applying a gamma correction of " + request.Gamma + " ...");

            foreach (FIBITMAP bitmap in libraryData.Bitmaps)
            {
                FreeImage.AdjustGamma(bitmap, request.Gamma);
            }
        }