我一直在关注Mozilla网站上有关透明度和渐变的课程:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Applying_styles_and_colors但我无法弄清楚这一点一出.
我知道我可以通过png图像实现这些效果; 但是,在我正在处理的程序中,渐变会根据图像的移动位置不断变化.
这是我正在寻找的效果的一个例子. http://home.insightbb.com/~epyonxl1/gradientex.jpg
我知道如何设置和显示椭圆形状.我知道如何将渐变应用于此形状.我无法弄清楚我是如何得到一个椭圆形渐变来匹配形状.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<gradient
android:startColor="#66FFFFFF"
android:endColor="#00FFFFFF"
android:gradientRadius="100"
android:type="radial" />
</shape>
Run Code Online (Sandbox Code Playgroud)
如果你可以想象,这个渐变在中间有一个半透明的白色发光,然后在边缘渐渐变为alpha零.我需要让它以椭圆形状出现,而不仅仅是圆形渐变.我怎样才能做到这一点?
我可以在IE6/7/8/9/FF3.6 +和Chrome中创建CSS渐变(见下文).
我的问题是:
如何在Opera中创建渐变?
.gradient{
/*Mozilla Firefox 3.6*/
background-image: -moz-linear-gradient(top, #dcdcdc, #c6c6c6);
/*Webkit aka Google Chrome*/
background-image: -webkit-gradient(linear,left bottom,left top,color-stop(0, #c6c6c6),color-stop(1, #dcdcdc));
/*Internet Explorer 6,7 and 8*/
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc', endColorstr='#c6c6c6');
/*Internet Explorer 8 only*/
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc', endColorstr='#c6c6c6')";
/* Opera */
/* ??? */
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下CSS样式.他们正在大多数浏览器上工作,包括ie7.然而在ie8中,透明背景没有显示,而是我得到了我想要留下的背景颜色设置为后备颜色.
section.rgba{
background-color: #B4B490;
background-color: rgba(200, 0, 104, 0.4);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#99B4B490',EndColorStr='#99B4B490');
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#99B4B490',EndColorStr='#99B4B490')";
zoom: 1
}
Run Code Online (Sandbox Code Playgroud)
我希望能够让这个工作,而不必诉诸IE样式表,我将背景颜色设置为无.这可能吗?
有谁知道如何解决它?
这里显示了我遇到的问题.基本上当我在thead上放一个渐变时,Chrome会重复这个渐变为永远的细胞...实际的期望结果是firefox产生的 - 整个thead的一个坚实的渐变.

有想法该怎么解决这个吗?
这是我的css:
thead.header {
font-weight: bold;
border-bottom: 1px solid #9C9C9C;
background-repeat: no-repeat;
background: #C6C6C6;
background: -moz-linear-gradient(top, #DEDEDE 0%, #BDBDBD 80%, #BBB 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#DEDEDE), color-stop(80%,#BDBDBD), color-stop(100%,#BBB));
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#DEDEDE', endColorstr='#BBB',GradientType=0 );
}
Run Code Online (Sandbox Code Playgroud)
如果它有帮助,这是html:
<table style="width:100%" cellpadding="0" cellspacing="0">
<thead class="header">
<tr>
<th width="200px">Actor</th>
<th rowspan="3">Character</th>
</tr>
<tr>
<th>Gender</th>
</tr>
<tr>
<th>Age</th>
</tr>
</thead>
<tbody class="odd">
<tr>
<td width="200px">Test</td>
<td rowspan="3">Test</table>
</td>
</tr>
<tr>
<td>Male</td>
</tr>
<tr>
<td>25</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud) 我想改变JButton渐变色,我发现这个,http://java2everyone.blogspot.com/2009/01/set-jbutton-gradient-color.html,但我想只改变一个按钮的渐变,而不是所有的按钮
目前我很难想到一种从我收到的图像中去除渐变的好方法.
图像是由显微镜相机拍摄的照片,中间有一盏眩光.图像具有贯穿整个图像的图案.但是我应该去除相机灯产生的图像上的强光.
不幸的是,由于相机的性质,不可能在黑色背景上拍照以找到渐变分布.我也没有没有渐变的比较图像.(注意 - 拍摄照片时,强光的位置始终是一致的)
更简单的说它就像有一张带闪光灯的照片,但我想摆脱闪光灯.唯一的问题是我没有办法获得没有闪光灯的图像来比较甚至只用闪光灯获得黑色图像.
我目前的想法是进行边缘检测并在远离边缘的特定位置获得样本(由于色差)并使用它来测量梯度的分布,因为这些区域应该具有相对相同的颜色.但是,我想知道是否有更简单,更好的方法来做到这一点.
如果需要,我稍后会发布图像的示例.
目前我更倾向于使用opencv在c ++中解决这个问题,如果这样可以更容易.
在此先感谢您对此问题的任何可能的想法.如果有其他链接,教程或帖子可以解决我的问题,我将非常感谢这篇文章.

正如你可以看出的那样,从白点可以看出,有一盏灯在img上闪耀.由于光线的作用,顶部比底部更轻,当图片以彩色拍摄时,椭圆内部的颜色实际上是不同的.但是盒子和椭圆之间的颜色应该是一致的.我最初的想法是,可能只对这些区域进行一些如何采样并建立一个我可以用来消除光线的轮廓,但我不确定它会有多么有效或者有更好的方法
编辑:
好吧,我尝试了罗杰的建议,结果非常好.使用110内核高斯模糊器找到照明并在其上进行CLAHE.(都是在opencv中完成的)
然而,我的同事告诉我,图像看起来并不完全均匀,并指出过去光线周围的区域略微更亮.他建议尝试选择性高斯模糊,其中高于某些阈值像素值的区域不会模糊而图像的其余部分模糊.
有没有人对此有意见,也许有链接,教程或类似这样的例子?我发现的大部分内容往往是像photoshop和gimp这样的程序选择性模糊
编辑2:

只用眼睛很难说,但我相信我已经通过使用简单的平面拟合算法实现了相对接近的均匀化.(( - A*x - B*y)/ C)(x,y,z)其中z是像素值.我认为这可以通过利用正弦拟合函数来改善吗?我不确定.但我对结果比较满意.非常感谢Roger的伟大创意.
我相信使用一堆图片并获得平均值将是另一种好方法(由罗杰建议)但是Unofruntely我无法实现这个,因为我没有提供各种图片,机器正在修改,所以我无法使用它.
我有这样的数据框
BP R2 LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598
Run Code Online (Sandbox Code Playgroud)
我想在BP10上绘制BP,并用R2对点进行着色.R2是0-1的连续值.
myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但是我想以手动选择的间隔和颜色显示R2颜色,如下所示(如果我有离散值).
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() +
scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"),
values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale
Run Code Online (Sandbox Code Playgroud)
这看起来很漂亮,但我宁愿设置我自己的颜色.
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) +
scale_colour_gradientn(colours = rainbow(10))
Run Code Online (Sandbox Code Playgroud)
那么,我怎样才能从连续值(1-0.8,0.8-0.6,0.6-0.4,0.4-0.2,0.2-0)手动选择间隔,并根据我的喜好(红色,黄色,绿色,浅色,深蓝色)进行着色?颜色之间的平滑渐变很酷,但并不重要.
我创建了一个tableViewController,我正在调用这个函数:
func setTableViewBackgroundGradient(sender: UITableViewController ,let topColor:UIColor, let bottomColor:UIColor){
let gradientBackgroundColors = [topColor.CGColor, bottomColor.CGColor]
let gradientLocations = [0.0,1.0]
let gradientLayer = CAGradientLayer()
gradientLayer.colors = gradientBackgroundColors
gradientLayer.locations = gradientLocations
gradientLayer.frame = sender.tableView.bounds
sender.tableView.backgroundView?.layer.insertSublayer(gradientLayer, atIndex: 0)
}
Run Code Online (Sandbox Code Playgroud)
有:
setTableViewBackgroundGradient(self, UIColor(0xF47434), UIColor(0xEE3965))
Run Code Online (Sandbox Code Playgroud)
但我得到的是这个:

我想将状态栏背景设置为渐变主题,状态栏和动作栏颜色应该是相同的渐变可绘制,根据文档,我们可以使用API级别21及以上的状态栏将颜色设置为使用
<item name="android:statusBarColor">@color/colorPrimary</item>
Run Code Online (Sandbox Code Playgroud)
但我正在寻找类似的东西
<item name="android:statusBarDrawable">@drawable/myDrawable</item>
Run Code Online (Sandbox Code Playgroud)
我见过使用的例子
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">false</item>
Run Code Online (Sandbox Code Playgroud)
但在那种情况下状态栏和操作栏重叠(使用fitSystemWindow = true但仍未解决)也尝试使用https://github.com/jgilfelt/SystemBarTint这个库,但仍然没有运气
先感谢您!!