- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在 EFG 网站上找到的更改色调/饱和度
示例:http://www.efg2.com/Lab/Library/Delphi/Graphics/Color.htm
我想使用该示例中的技术来更改某些位图的颜色值(在 TImage 上使用)。我面临一个问题,那就是具有透明位图的 TImage;我不希望背景颜色改变其色调,而只是改变实际的图像数据。
采用我们可以使用的示例图像(尽管可以使用任何具有透明度的图像):
更改色调/饱和度
演示。一些输出结果:
我想要在这里发生的是保留原始背景颜色(由最左下角像素定义)并仅调整图像其余部分的色调。因此,输出结果实际上如下所示(在 Paint.NET 中编辑):
请允许我使用另一个包含更多图像数据的示例图像进行测试:
与之前的第一个图像示例一样,结果可能类似于:
当我想要的结果应该是这样的:
我的一个想法是在色调更改后,用原始颜色替换最左下角的颜色,但我不确定这是否是正确的方法,即使是,我也不确定如何将颜色 X 替换为另一种颜色。 (图形和数学超出了我的范围)。
例如,如果我在米奇的耳朵上画了两个蓝色圆圈(蓝色是最左下角像素的原始透明颜色)并给他的眼睛上色:
再次更改色调可能如下所示:
事实上它应该是这样的:
简单地说,我想更改图像的色调,无论是通过 EFG 演示中使用的方法还是其他解决方案。当色调更改时,最左下角像素定义的透明颜色不应更改,这应与示例图像中演示的保持一致。
如何在保留背景颜色的同时更改位图的色调?
最佳答案
您引用的代码会遍历图像上的所有像素以更改色调/饱和度。您可以修改代码,以便在像素具有特定颜色时不会干扰:
PROCEDURE TFormChangeHS.UpdateBitmap;
..
S : TReal;
V : TReal;
FixColor: TRGBTriple; // New variable
BEGIN
DeltaSaturation := SpinEditDeltaSaturation.Value;
NewHue := TrackBarHue.Position;
Bitmap := TBitmap.Create;
TRY
Bitmap.Width := ImageOriginal.Width;
Bitmap.Height := ImageOriginal.Height;
Bitmap.PixelFormat := ImageOriginal.Picture.Bitmap.PixelFormat;
ASSERT(Bitmap.PixelFormat = pf24bit);
// save bottom left color
FixColor := PRGBTripleArray(
ImageOriginal.Picture.Bitmap.ScanLine[Bitmap.Height - 1])^[0];
//--
FOR j := 0 TO Bitmap.Height-1 DO
BEGIN
RowIn := ImageOriginal.Picture.Bitmap.Scanline[j];
RowOut := Bitmap.Scanline[j];
FOR i := 0 TO Bitmap.Width-1 DO
BEGIN
WITH RowIn[i] DO
BEGIN
// copy the color to target and continue with next iteration
if (RowIn[i].rgbtBlue = FixColor.rgbtBlue) and
(RowIn[i].rgbtGreen = FixColor.rgbtGreen) and
(RowIn[i].rgbtRed = FixColor.rgbtRed) then begin
RowOut[i] := FixColor;
Continue;
end;
//--
// convert pixel coordinates to HSV
RGBtoHSV(rgbtRed, rgbtGreen, rgbtBlue, H, S, V);
END;
..
..
输出:
关于delphi - 更改位图的色调但保留背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10622373/
我想将一些颜色值从众所周知的 HSL 转换为鲜为人知的 HSLum 怎么做? hsl(0, 1.0, 0.5) - rgb red is hslum(0, 1.0., 0.54) hsl(120,
在 xml 中为 ImageView 设置色调时,我收到一条警告,显示:- 必须使用 app:tint 而不是 android:tint 为什么我应该使用 app:tint? 最佳答案 因为有一些问题
如果我有一个 alpha 整数和三个用于色调、饱和度和亮度的 float ,我如何使用一种方法以最紧凑的方式将它们转换为一个 argb 值? 编辑:我知道我可以使用 HSBtoRGB,我已经通读了 j
尝试在 firemonkey 中实现类似于此的环形颜色选择器:http://dph.am/iDropper/ 我认为可以使用在笔划上具有多点渐变的 TCircle 来完成。根据我的实验和研究,渐变只能
我在 Hadoop 2.6.2 集群中使用 Hue 3.9。这些计算机都有 Ubuntu 14.04。我能够成功安装 Hue,但从 Web UI 查看 hue 时确实出现了一些错误。我试图一次解决这些
有没有一种方法可以使用 jQ 或某些插件对图像进行着色(应用色调)?谢谢 最佳答案 我能想到的最简单的方法是在图像上覆盖一个半透明的 div。 一个小例子: HTML CSS .overlay
类似于this previous question ,我想将任意颜色的色调应用于任意图像(UIImageView)。然而,我希望色调在 N 秒的时间内逐渐消失,以产生“脉冲”效果。我将每 M 秒触发一
是否有任何命令来检查Hadoop中当前正在运行多少个色调 session ,以及是否有任何方法可以查看已随着年龄运行的 session ? 最佳答案 一个可以帮助解决这个问题的吉拉是HUE-2288
我是 seaborn 的新手,我有这个数据集,想创建一个这样的图表,但要使用 seaborn。 这是我的数据: max_depth = [ 3, 3, 3, 3, 3, 5, 5, 5,
我是 seaborn 的新手,我有这个数据集,想创建一个这样的图表,但要使用 seaborn。 这是我的数据: max_depth = [ 3, 3, 3, 3, 3, 5, 5, 5,
如何使用 Stylus 更改十六进制颜色值的色调和增加饱和度? 最佳答案 Stylus 实际上内置了这些功能。基于文档 hue , saturation : 以下应该有效: 色调(#00c, 90de
我正在尝试创建一个应用程序,允许我通过调整上述每个字段的搜索栏来调整图像的色调、饱和度、亮度、对比度和清晰度。喜欢 http://ronbigelow.com/articles/workflow_ba
我为此问题创建了一个示例数据集 import pandas as pd from pandas import DataFrame import seaborn as sns import numpy
(HI) 我不是比色学方面的专家,但我想知道如何实现基于主色生成随机颜色的脚本。 可能是随机的阴影或色调 例如:#f25f9a。 http://www.color-hex.com/color/f25f
我用 TextView 制作了一些复选框和单选按钮,但它们在 Lollipop 之前没有着色。 我的 TextView 扩展 AppCompatCheckedTextView,样式如下: ?
我创建了一个启用了分析的 Solr 仪表板。计数器按钮现在显示,但它是灰色的。 Hue 或 solr 中是否有任何我应该启用的附加标志? 谢谢 我正在使用 Solr 7 + Hue 4 最佳答案 这是
正如标题所说,如何将状态栏图标的颜色更改为深色调而不是默认的白色。 来自 到 最佳答案 要使状态栏图标具有深色而不是默认的白色,请在 styles.xml 中添加以下标记(或者更准确地说是在 valu
刚刚在我的 iPhone 3GS 上切换到 iOS 4,我的一些应用程序崩溃了。 我遇到的一个问题是,我有一个带有一些按钮的 UIToolbar,颜色为粉红色,在 3.1.3 操作系统上运行良好。升级
我有一个“位图”类型,其中包含一些随机位图数据。我已经编写了自己的亮度、颜色、饱和度和色调调整,这些调整分别作用于每个位,毫不奇怪,速度非常慢。 在我的研究中,我注意到使用矩阵可以非常快地调整这些。此
假 --> HEX color:
我是一名优秀的程序员,十分优秀!