标签: gradient

UIView Shadow Gradient

我在我的iOS项目中创建了一个自定义UIView,它有一个投影.我的目标是将相同的渐变应用于阴影,就像在视图的背景上一样.

下面是我当前纯色阴影的外观示例.

影子示例 这是通过UIView的子类完成的,代码如下:

override func layoutSubviews() {
    let gradientLayer = layer as! CAGradientLayer
    gradientLayer.colors = [topColor.cgColor, bottomColor.cgColor]
    gradientLayer.startPoint = CGPoint(x: startPointX, y: startPointY)
    gradientLayer.endPoint = CGPoint(x: endPointX, y: endPointY)
    layer.cornerRadius = cornerRadius
    layer.shadowColor = shadowColor.cgColor
    layer.shadowOffset = CGSize(width: shadowX, height: shadowY)
    layer.shadowRadius = shadowBlur
    layer.shadowOpacity = 1

    let inset: CGFloat = bounds.width * 0.05
    layer.shadowPath = UIBezierPath(roundedRect: bounds.insetBy(dx: inset, dy: 0.0), cornerRadius: cornerRadius).cgPath
}
Run Code Online (Sandbox Code Playgroud)

我一直在玩创建第二个渐变层并将其遮盖到阴影中,但没有运气.请指出我正确的方向!

gradient shadow uiview ios swift

16
推荐指数
1
解决办法
2517
查看次数

如何用Raphael创建渐变对象

我试图使用Raphael JS图形库.我想使用属性梯度,它应该接受一个对象.文档说参考SVG规范.例如,我在SVG中找到了渐变对象

<linearGradient id="myFillGrad" x1="0%" y1="100%" x2="100%" y2="0%">
<stop offset="5%" stop-color="red" />
<stop offset="95%" stop-color="blue" stop-opacity="0.5" />
</linearGradient>
Run Code Online (Sandbox Code Playgroud)

但我如何从我的JavaScript中引用它?

circle.attr("gradient", "myFillGrad"); 
Run Code Online (Sandbox Code Playgroud)

不起作用:)提前谢谢

javascript svg gradient object raphael

15
推荐指数
2
解决办法
2万
查看次数

如何在HSV颜色空间中插入色调值?

我正在尝试在HSV颜色空间中插入两种颜色之间以产生平滑的颜色渐变.

我正在使用线性插值,例如:

h = (1 - p) * h1 + p * h2
s = (1 - p) * s1 + p * s2
v = (1 - p) * v1 + p * v2
Run Code Online (Sandbox Code Playgroud)

(其中p是百分比,h1,h2,s1,s2,v1,v2是两种颜色的色调,饱和度和值分量)

这对s和v产生了良好的结果,但对于h则没有.由于色调分量是一个角度,计算需要计算出h1和h2之间的最短距离,然后沿正确的方向(顺时针或逆时针)进行插值.

我应该使用什么公式或算法?


编辑:通过遵循杰克的建议我修改了我的JavaScript渐变功能,它运作良好.对于任何有兴趣的人,这是我最终得到的:

// create gradient from yellow to red to black with 100 steps
var gradient = hsbGradient(100, [{h:0.14, s:0.5, b:1}, {h:0, s:1, b:1}, {h:0, s:1, b:0}]); 

function hsbGradient(steps, colours) {
  var parts = colours.length - 1;
  var gradient = new Array(steps);
  var …
Run Code Online (Sandbox Code Playgroud)

javascript interpolation gradient colors hsv

15
推荐指数
2
解决办法
8011
查看次数

如何在图像上实现alpha渐变?

我想在图像上实现alpha渐变.从图像顶部的0.5 alfa到底部的0.0.欢迎任何建议,教程和链接.

iphone gradient alpha quartz-2d ios

15
推荐指数
2
解决办法
1万
查看次数

Android 4.1.1上的ComposeShader问题

我只是想为我的Android应用程序实现一个颜色选择器,并在Android 4.1.1上遇到了一个奇怪的问题.以下代码不会在Android 4.1.1上创建预期的渐变,但它在2.3.7上创建:

Shader fadeInRight = new LinearGradient(0, 0, pWidth, 0, 0x00000000, 0xFF000000, Shader.TileMode.CLAMP);
Shader blackToWhite = new LinearGradient(0, 0, 0, pHeight, 0xFF000000, 0xFFFFFFFF, Shader.TileMode.CLAMP);
Shader whiteMask = new ComposeShader(blackToWhite, fadeInRight, PorterDuff.Mode.DST_IN);
Shader blackToColor = new LinearGradient(0, 0, pWidth, 0, 0xFF000000, hue, Shader.TileMode.CLAMP);
Shader shader = new ComposeShader(blackToColor, whiteMask, PorterDuff.Mode.SCREEN);
paint.setShader(shader);
...
canvas.drawRect(new Rect(0, 0, pWidth, pHeight), paint);
Run Code Online (Sandbox Code Playgroud)

这是问题所在: 在此输入图像描述

(忽略Android 4.1.1下面的红色框.我只是谈论上面的渐变)

任何想法有什么不对?我认为我的代码中缺少一些东西,但我不知道,是什么.

编辑#1: 如果我只是用whiteMasksetShader,我也得到了两个系统不同的结果:通过梯度矩形照着2.3.7我可以看到配置菜单(这是弹出后面)的文本.此外,从左上边缘到右下边缘(黑色到白色)有一个渐变,但4.1.1上的渐变从左到右水平.所以这似乎是一个问题ComposeShader

编辑#2: 我找到了一个更简单的例子来描述这个问题:

Shader shader1 = new LinearGradient(0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

android gradient canvas android-4.2-jelly-bean

15
推荐指数
1
解决办法
2564
查看次数

使用具有三种以上颜色的gradientDrawable

根据我读过的内容,您可以使用gradientDrawable并为其设置三种颜色,例如:

<gradient startColor="#00FF00" centerColor="#FFFF00" endColor="#FFFFFF"/>
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要超过三种颜色,不仅如此,我希望能够设置每个颜色的位置(重量/百分比)?

是否可以使用API​​或我应该制作自己的自定义drawable?如果我需要制作自己定制的可绘制的,我应该怎么做?

android gradient colors android-drawable

15
推荐指数
2
解决办法
1万
查看次数

如何使用Core Graphics/iPhone绘制渐变弧?

我知道如何绘制弧线

我还发现了如何从这里绘制渐变线

我发现两个函数可以绘制渐变:CGContextDrawLinearGradient和CGContextDrawRadialGradient.but如何绘制渐变弧?我想像这张照片一样意识到:在此输入图像描述

gradient draw ios

15
推荐指数
1
解决办法
7220
查看次数

具有梯度笔划的SVG线不会直接显示

我试图<hr>用SVG 复制一个.现在,使用SVG制作一条直线可以完美地工作,但是第二个我用渐变划线它将不再以直线显示.

以下代码有效,但请注意,y1和y2必须相隔1个单位.例如,如果我将y1和y2设置为210,则该行将消失.

<defs>
    <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
        <stop offset="0%" style="stop-color:rgba(0,0,0,0);stop-opacity:0" />
        <stop offset="50%" style="stop-color:rgba(0,0,0,0.75);stop-opacity:1" />
        <stop offset="100%" style="stop-color:rgba(0,0,0,0);stop-opacity:0" />
    </linearGradient>
</defs>
<line x1="40" y1="210" x2="460" y2="211" stroke="url(#grad1)" stroke-width="1" />
Run Code Online (Sandbox Code Playgroud)

我可能只是错过了线性渐变的一些明显功能,而且线条看起来还不错,但我更倾向于让它笔直.谢谢.

svg gradient line

15
推荐指数
2
解决办法
5470
查看次数

有效地从TensorFlow中获取渐变?

我正在尝试使用TensorFlow实现异步参数服务器DistBelief样式.我发现minimize()被分成两个函数,compute_gradients和apply_gradients,所以我的计划是在它们之间插入一个网络边界.我有一个关于如何同时评估所有渐变并将它们全部拉出来的问题.我知道eval只评估必要的子图,但它也只返回一个张量,而不是计算张量所需的张量链.

我怎样才能更有效地做到这一点?我把Deep MNIST的例子作为起点:

import tensorflow as tf
import download_mnist

def weight_variable(shape, name):
   initial = tf.truncated_normal(shape, stddev=0.1)
   return tf.Variable(initial, name=name)

def bias_variable(shape, name):
   initial = tf.constant(0.1, shape=shape)
   return tf.Variable(initial, name=name)

def conv2d(x, W):
   return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

def max_pool_2x2(x):
   return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                         strides=[1, 2, 2, 1], padding='SAME')

mnist = download_mnist.read_data_sets('MNIST_data', one_hot=True)
session = tf.InteractiveSession()
x = tf.placeholder("float", shape=[None, 784], name='x')
x_image = tf.reshape(x, [-1,28,28,1], name='reshape')
y_ = tf.placeholder("float", shape=[None, 10], name='y_')
W_conv1 = weight_variable([5, …
Run Code Online (Sandbox Code Playgroud)

python gradient tensorflow

15
推荐指数
2
解决办法
1万
查看次数

如何使用累积渐变更新模型参数?

我正在使用TensorFlow构建一个深度学习模型.TensorFlow的新手.

由于某种原因,我的模型具有有限的批量大小,然后这种有限的批量大小将使模型具有高的方差.

所以,我想用一些技巧来增加批量.我的想法是存储每个小批量的渐变,例如64个小批量,然后将渐变相加,使用这64个小批量训练数据的平均梯度来更新模型的参数.

这意味着对于前63个小批量,不更新参数,并且在64小批量之后,仅更新模型的参数一次.

但由于TensorFlow是基于图形的,有谁知道如何实现这个想要的功能?

非常感谢.

python gradient tensorflow

15
推荐指数
1
解决办法
5812
查看次数