我正在制作一组使用动态渐变的按钮.我通过使用他们专有的CSS扩展来处理Firefox 3.6+和WebKit,我需要做的就是使用background-image:url("gradient.svg")来支持Opera,iOS和IE9.
这是相对容易的,我制作了一个SVG文件,链接它并让它工作.但是,我正在制作一套,所以我需要至少6个渐变.当我通常在图像中执行它时,我创建了一个用于快速HTTP访问的sprite.我不确定如何在SVG中实现这一点 - 我可以使用一个文件并使用#identifiers访问其XML的不同部分,就像XBL一样吗?
我目前的SVG:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="select-gradient" x1="0" x2="0" y1="0" y2="1">
<stop offset="0%" stop-color="rgb(231,244,248)"/>
<stop offset="100%" stop-color="rgb(207,233,241)"/>
</linearGradient>
<style type="text/css">
rect {
fill: url(#select-gradient);
}
</style>
</defs>
<rect x="0" y="0" rx="6" ry="6" height="100%" width="100%"/>
</svg>
Run Code Online (Sandbox Code Playgroud)
然后我有CSS:
.button-1 {
background-image: url("gradient-1.svg");
}
.button-2 {
background-image: url("gradient-2.svg");
}
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
.button-1 {
background-image: url("gradient.svg#gradient1");
}
.button-2 {
background-image: url("gradient.svg#gradient2");
}
Run Code Online (Sandbox Code Playgroud)
它甚至可能吗?你能帮我吗?我真的不想推送6个XML文件,当我可以用一个.
我一直在设计网站很长一段时间只使用渐变图像,对于小渐变这似乎工作正常并没有增加太多的加载时间,但现在与新的CSS碎片化很多(webkit/moz/o/khtml,更不用说即6,7,8,9)
因此,为了只有一个普遍的梯度,这将是很多css.
对于需要大量渐变的网站,我使用Less.js来使它稍微好一点,但这只是到目前为止......
我只是想知道在图像上使用css渐变更有意义,如果真的有一个突破点.
[前.一个小的5px渐变,只有一个5px的图像更有意义,但像1000px的渐变,它可能更有意义,只使用css]
哦,我知道有SVG,我还没有真正尝试过,但它运作良好吗?
任何意见将不胜感激.:)
把我的脚浸入更多的核心图形绘图,我试图重新创建一个邪恶的金属旋钮,我已经登陆了可能是一个显示停止的问题.
似乎没有任何方法可以在Core Graphics中绘制角度渐变.我看到有CGContextDrawRadialGradient()和CGContextDrawLinearGradient(),但没有什么,我看,让我画的角度梯度.有没有人知道一个变通方法,或一些隐藏在某处的框架来实现这一点,而无需将旋钮预先渲染到图像文件中?
AngleGradientKnob http://dl.dropbox.com/u/3009808/AngleGradient.png.
我从MeBigFatGuy有趣的问题中获得灵感,在这个连接中,我有一个非常具体的问题Graphisc2D,如何改变BackGround Color取决于是否JTables Row可见JViewPort,
1)如果1st. & last JTables Row在中可见JViewPort,则BackGround将被着色为Color.red
2)如果1st. & last JTables Row在中不可见JViewPort,那么BackGround就会被着色了Color.whatever

来自SSCCE
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.swing.RepaintManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.TableModel;
/*
https://stackoverflow.com/questions/1249278/
how-to-disable-the-default-painting-behaviour-of-wheel-scroll-event-on-jscrollpan
*
and
*
https://stackoverflow.com/questions/8195959/
swing-jtable-event-when-row-is-visible-or-when-scrolled-to-the-bottom
*/
public class ViewPortFlickering {
private JFrame frame = new JFrame("Table");
private JViewport viewport = new JViewport(); …Run Code Online (Sandbox Code Playgroud) 假设我们有一个我们以某种方式通过openCV修改的图像:

现在我们很乐意申请它Gradient Map(就像我们可以通过photoshop申请):

所以我想知道如何通过openCV应用渐变映射(彩虹色)?
我试图在WPF中为游戏绘制球形件.使用RadialGradientBrushs将片段绘制为Elipses.正如你在下面看到的那样,我的黑色部分看起来很棒,但很难让白色的部分有任何深度,而不会使它们看起来像灰色.

我目前正在使用:
private readonly Brush _whitePieceBrush = new RadialGradientBrush(Colors.Snow, Colors.Ivory);
private readonly Brush _blackPieceBrush = new RadialGradientBrush(Colors.DarkGray, Colors.Black);
...
using (DrawingContext dc = _piecesVisual.RenderOpen())
{
....
Brush brush = piece.Value.IsBlack ? _blackPieceBrush : _whitePieceBrush;
var pen = new Pen(new SolidColorBrush(Colors.Black), 0.5);
dc.DrawEllipse(brush, pen, new Point(posX, posY), 15, 15);
...
}
Run Code Online (Sandbox Code Playgroud)
白色碎片周围的黑色圆圈没有帮助,但没有它们,它看起来更糟.(如果我能找到一个好看的方法来绘制它们看起来更好,我会删除它)
我正在尝试使用背景linear-gradient,但我希望步骤"更大".
例如,不是逐个像素地改变,而是改变每N个像素.
是否可以只用CSS做到这一点?
我对如何实现这一目标毫无头绪.所以我创建了这个SVG示例来模拟我想要实现的目标:
http://codepen.io/Goodwine/pen/fqgdB
要使用CSS,我需要手动插入每个颜色停止,在这种情况下我设置这个"颜色停止":
[{r: 0, g: 0, b: 0, a: 1, p: 0.00},
{r: 100, g: 100, b: 255, a: 1, p: 0.25},
{r: 255, g: 200, b: 100, a: 1, p: 0.5},
{r: 255, g: 200, b: 200, a: 1, p: 0.7},
{r: 100, g: 100, b: 100, a: 1, p: 0.9},
{r: 0, g: 0, b: 0, a: 1, p: 1}]
Run Code Online (Sandbox Code Playgroud) 我有一个相对直接的实现使用CALayer对象设置的进度视图.进度视图本身是UIView的子视图.
以下是设置进度环的代码:
self.progressRingLayer = CAShapeLayer()
let innerRect = CGRectInset(bounds, CGFloat(self.lineWidth) / 2, CGFloat(self.lineWidth) / 2)
let innerPath = UIBezierPath(ovalInRect: innerRect)
self.progressRingLayer.path = innerPath.CGPath
self.progressRingLayer.fillColor = UIColor.clearColor().CGColor
self.progressRingLayer.strokeColor = kProgressColor.CGColor
self.progressRingLayer.anchorPoint = CGPointMake(0.5, 0.5)
self.progressRingLayer.transform = CATransform3DRotate(self.progressRingLayer.transform, (CGFloat(M_PI))*1, 0, 0, 1)
self.progressRingLayer.lineCap = kCALineCapRound
self.progressRingLayer.lineWidth = CGFloat(self.lineWidth)
self.layer.addSublayer(self.progressRingLayer)
Run Code Online (Sandbox Code Playgroud)
我现在要做的是向跟随(或弯曲)路径的progressRingLayer添加渐变.我成功地为填充添加了线性渐变,但不仅仅是路径.
这是我想要的效果的一个例子:

到目前为止,我发现的所有内容都需要一些额外的步骤,其中CoreGraphics和CGContext不太适合我的实现.任何帮助都会很棒,谢谢!
有关如何更改2部分渐变线的文字颜色的任何想法?例如,如果我想要文本的蓝色部分('s','o'和'm'的一部分)是黑色的?
.button{
background: linear-gradient(140deg, #00C9FF 35%, transparent 35%);
}
Run Code Online (Sandbox Code Playgroud)
我有一个训练有素的网络。我想计算输出与输入的梯度。通过查询 PyTorch 文档,torch.autograd.grad可能会有用。所以,我使用以下代码:
x_test = torch.randn(D_in,requires_grad=True)
y_test = model(x_test)
d = torch.autograd.grad(y_test, x_test)[0]
Run Code Online (Sandbox Code Playgroud)
model是神经网络。x_test是大小的输入D_in和y_test一个标量输出。我想将计算结果与数值差异进行比较scipy.misc.derivative。所以,我通过设置一个索引来计算偏导数。
idx = 3
x_test = torch.randn(D_in,requires_grad=True)
y_test = model(x_test)
print(x_test[idx].item())
d = torch.autograd.grad(y_test, x_test)[0]
print(d[idx].item())
def fun(x):
x_input = x_test.detach()
x_input[idx] = x
with torch.no_grad():
y = model(x_input)
return y.item()
x0 = x_test[idx].item()
print(x0)
print(derivative(fun, x0, dx=1e-6))
Run Code Online (Sandbox Code Playgroud)
但我得到了完全不同的结果。由 计算的梯度torch.autograd.grad为-0.009522666223347187,而由计算的梯度scipy.misc.derivative为-0.014901161193847656。
计算上有什么问题吗?还是我用torch.autograd.grad错了?