今天我设计了一个透明的PNG背景,只能坐在div的左上角,div的其余部分将为PNG的所有透明区域以及div本身的其余部分保留渐变背景.
通过我认为可行的代码解释可能更好:
#mydiv .isawesome {
/* Basic color for old browsers, and a small image that sits in the top left corner of the div */
background: #B1B8BD url('../images/sidebar_angle.png') 0 0 no-repeat;
/* The gradient I would like to have applied to the whole div, behind the PNG mentioned above */
background: -moz-linear-gradient(top, #ADB2B6 0%, #ABAEB3 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ADB2B6), color-stop(100%,#ABAEB3));
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ADB2B6', endColorstr='#ABAEB3',GradientType=0 );
}
Run Code Online (Sandbox Code Playgroud)
我发现的是大多数浏览器选择其中一个 - 大多数选择渐变,因为它更深入CSS文件.
我知道这里的一些人会说"只是将渐变应用于你正在制作的PNG" - 但这并不理想,因为div会保持动态高度 - 有时很短,有时很高.我知道这个渐变并不重要, …
我需要可视化一些数据.它是基本的2D网格,其中每个单元格都有浮点值.我知道如何在OpenCV中为颜色分配颜色和绘制网格.但这里的重点是,有太多的价值观,所以几乎不可能做到这一点.我正在寻找一些方法,我可以使用渐变.例如,值-5.0将由蓝色,0 - 黑色和+5.0表示为红色.在Python中有没有办法做到这一点?
这是我正在谈论的示例数据
A B C D
A -1.045 2.0 3.5 -4.890
B -5.678 3.2 2.89 5.78
Run Code Online (Sandbox Code Playgroud) 我知道如何绘制一条简单的线条:
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextMoveToPoint(context, x, y);
CGContextAddLineToPoint(context, x2, y2);
CGContextStrokePath(context);
Run Code Online (Sandbox Code Playgroud)
我知道如何做一个渐变矩形,ig:
CGColorSpaceRef myColorspace=CGColorSpaceCreateDeviceRGB();
size_t num_locations = 2;
CGFloat locations[2] = { 1.0, 0.0 };
CGFloat components[8] = { 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0 };
CGGradientRef myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, num_locations);
CGPoint myStartPoint, myEndPoint;
myStartPoint.x = 0.0;
myStartPoint.y = 0.0;
myEndPoint.x = 0.0;
myEndPoint.y = 10.0;
CGContextDrawLinearGradient (context, myGradient, myStartPoint, myEndPoint, 0);
Run Code Online (Sandbox Code Playgroud)
但是我怎么能画一条渐变的线条,ig从黑色渐变到白色(也可能在另一边渐渐变成黑色)?
假设div的高度为34px,宽度为480px.div应如下所示:

我不希望它实际使用图像,只是CSS.可能吗?
任何人都知道如何以核心图形在图像上以编程方式创建透明渐变(alpha渐变)?我需要它来显示图像并保存它.
我想要获得的一个例子:

我想创建一个新的色彩映射,在绿色和蓝色之间插入(或者任何其他两种颜色).我的目标是得到类似的东西:
首先,我真的不确定是否可以使用蓝色和绿色的线性插值来完成.如果可以,我不知道该怎么做,我找到了一些关于使用matplotlib方法的文档,该方法在此处插入指定的RGB值
真正的麻烦是理解"cdict2"如何在下面工作.对于示例,文档说:
"示例:假设您希望红色在下半部分从0增加到1,绿色在中间半部分增加相同,而在上半部分则为蓝色.然后您将使用:"
from matplotlib import pyplot as plt
import matplotlib
import numpy as np
plt.figure()
a=np.outer(np.arange(0,1,0.01),np.ones(10))
cdict2 = {'red': [(0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 0.0, 0.0),
(0.25, 0.0, 0.0),
(0.75, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'blue': [(0.0, 0.0, 0.0),
(0.5, 0.0, 0.0),
(1.0, 1.0, 1.0)]}
my_cmap2 = matplotlib.colors.LinearSegmentedColormap('my_colormap2',cdict2,256)
plt.imshow(a,aspect='auto', cmap =my_cmap2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
编辑:我现在明白插值是如何工作的,例如,这将给出一个红色到白色的插值:
白色到红色:沿着每个颜色的"矩阵"列向下,在第一列中,我们有xcoordinate,我们希望插值开始和结束,另外两列是该坐标处颜色值的实际值.
cdict2 = {'red': [(0.0, 1.0, 1.0),
(1.0, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 1.0, 1.0), …Run Code Online (Sandbox Code Playgroud) 我想申请一个渐变背景只是一排,我已经创建了一个XAML的Silverlight网格.
我可以毫无困难地做这样的事情:
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<!-- components and various stuffs -->
</Grid>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会将渐变应用于整个网格.
好像我不能将渐变(甚至颜色)应用于网格中的单个行定义.可能吗?
谢谢!
是否真的没有办法用CSS动画渐变背景?
就像是:
@-webkit-keyframes pulse {
0% {
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgb(196,222,242)), color-stop(0.5, rgb(242,242,242)), color-stop(1, rgb(240,240,240)));
}
50% {
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgb(222,252,255)), color-stop(0.5, rgb(242,242,242)), color-stop(1, rgb(240,240,240)));
}
100% {
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgb(196,222,242)), color-stop(0.5, rgb(242,242,242)), color-stop(1, rgb(240,240,240)));
}
}
Run Code Online (Sandbox Code Playgroud)
我知道,对于Safari 5.1+和Chrome 10+,有一个新的渐变语法,但是现在,我必须坚持使用旧的渐变语法.
摘要: SVG精灵包含五个图标<symbol>块,其中一个图标块通过ID引用自己的渐变定义.它不再能够找到此渐变并正确渲染.
JSFIDDLE: http ://jsfiddle.net/Qtq24/1/
我正在将一些图形转换为SVG,并且它们是图标(在这种情况下用于社交网络配置文件)我想将它们保存在精灵中(就像我之前使用PNG一样).
我在CSS-tricks.com上遵循了本指南中的SVG sprites(以及后续建议使用<symbol>而不是使用<g>).
我现在有一个SVG精灵文件,social-sprite.svg,你可以在这里完整查看.
这是一个<svg>包含五个不同<symbol>块的完整块,每个块都id带有一个viewBox属性.在每种情况下,我通过在Adobe Illustrator中准备官方图标并保留已处理代码的相关部分来获取每个符号的SVG代码.
一旦<body>标签打开,就会通过PHP包含.svg文件(这就是为什么其中的主<svg>容器被标记的原因style="display: none;"),以便每个符号的引用都可以从HTML中运行.
四个图标完美运行,我唯一遇到问题的是YouTube图标,因为它使用内部定义的渐变.以下是SVG代码的YouTube部分:
<symbol id="youtube" viewBox="0 0 400 281.641">
<path id="Triangle" fill="#FFFFFF" d="M159.845,191.73l106.152-54.999L159.845,81.348V191.73z"/>
<path id="The_Sharpness" opacity="0.12" fill-rule="evenodd" clip-rule="evenodd" fill="#420000" d="M159.845,81.348l93.091,62.162
l13.061-6.778L159.845,81.348z"/>
<g id="Lozenge">
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="200.4204" y1="2.6162" x2="200.4204" y2="278.9292">
<stop offset="0" style="stop-color:#E52D27"/>
<stop offset="1" style="stop-color:#BF171D"/> …Run Code Online (Sandbox Code Playgroud) 我有一个白色图像,我想用渐变颜色.我想在代码(而不是xml)中执行此操作,而不是生成一堆每个都用特定渐变着色的图像.
要改变图像的颜色,我使用
imageView.setColorFilter(Color.GREEN);
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,如何应用渐变色而不是纯色?LinearGradient没有帮助,因为setColorFilter无法应用于Shader对象.
编辑:这是我的形象:
这就是我要的:
这就是我得到的: