我最近问了一个问题,如何在不裁剪的情况下将比画布大的图像绘制到画布上,并在对其进行一些更改后将图像保存回原始尺寸。我发现解决方案是为大于图像的画布设置内联height和width属性,并使用 cssheight和width属性来设置画布的样式以适应您的布局。
例如,假设我的图像尺寸范围在 400 像素到 2000 像素之间。但我不希望画布那么大,我也不希望图像也被裁剪(因为当用toDataURL画布上的内容保存图像时,保存的就是保存的内容)。这是有效的:
//style
#mycanvas{
width: 400px;
height: 400px;
}
<canvas id="mycanvas" width="2000" height="2000" />
Run Code Online (Sandbox Code Playgroud)
这工作正常,我的图像效果很好。但是这种行为是否有问题并且将来一定会改变/修复?我打算将此解决方案用于手头的任务。
任何指导?
我的环境是这样的:
Windows 7 64bit
Wamp 2.4
PHP 5.4.12
Run Code Online (Sandbox Code Playgroud)
我已经在两个位置的 php.ini 文件中启用了扩展。PHP 和 Apache:
extension=yaml.so
Run Code Online (Sandbox Code Playgroud)
但yaml_parse仍显示为未定义。
关于如何让 YAML 在 Wamp 上工作的任何建议?
我正在为我的应用程序使用Yeoman + Angular Generator,我一直在努力与Jasmine相处!这是我被困的地方.我希望能够在Jasmine测试中使用jQuery选择器.我已经安装了karma-jasmine和karma-jasmine-jquery包.然后我为凉亭安装它(我是新的,我不知道应该为什么安装!).我手动添加了我的路径karma.conf.js,但我仍然收到这样的消息:
Running "karma:unit" (karma) task
Warning: No provider for "framework:jasmine-jquery"! (Resolving: framework:jasmine-jquery) Use --force to continue.
Run Code Online (Sandbox Code Playgroud)
这就是我的业力配置的样子:
// Karma configuration
// http://karma-runner.github.io/0.12/config/configuration-file.html
// Generated on 2014-09-12 using
// generator-karma 0.8.3
module.exports = function(config) {
'use strict';
config.set({
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// base path, that will be used to resolve files and exclude
basePath: '../',
// testing framework to use …Run Code Online (Sandbox Code Playgroud) 我有一个控制器,其中包含一个从服务器获取一些数据的函数.我将该数据存储在服务变量中.然后将此服务注入指令中.我想要在调用此函数并更新数据时自动更新指令.
我的控制器:
angular
.module('myApp')
.controller('myCtrl', ['$scope', 'SomeService', function($scope, SomeService) {
$scope.update = function() {
SomeService.myValue = 100;
}
}]);
Run Code Online (Sandbox Code Playgroud)
指令:
angular.module('myApp')
.directive('myDirective', ['SomeService', function(SomeService) {
return {
templateUrl : 'views/myDirective.html',
restrict : 'E',
scope : false,
controller : function($scope) {
this.myValue = SomeService.myValue;
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
模板:
<div>
{{ myValue }}
</div>
Run Code Online (Sandbox Code Playgroud)
单击按钮时会调用更新函数,并将myValue更新为新值.我希望它能自动反映在指令中.
Plunk:http://plnkr.co/edit/OUPzT4MFS32OenRIO9q4?p =preview
我有一个像这样的对象数组:
var data = {
a: [
{ keyone:'c', keytwo: 'anna', keythree: 21, keyfour: 15 },
{ keyone:'a', keytwo: 'anna', keythree: 22, keyfour: 15 },
{ keyone:'s', keytwo: 'anna', keythree: 10, keyfour: 15 },
{ keyone:'v', keytwo: 'anna', keythree: 7, keyfour: 15 }
],
b: [
{ keyone:'f', keytwo: 'any', keythree: 45, keyfour: 100 },
{ keyone:'b', keytwo: 'any', keythree: 146, keyfour: 100 },
{ keyone:'t', keytwo: 'any', keythree: 23, keyfour: 100 },
{ keyone:'h', keytwo: 'any', keythree: 11, keyfour: …Run Code Online (Sandbox Code Playgroud) 我需要用一些其他字符串替换一对锚标记之间的字符串.更清楚:
<a blah blah>Click Here</a>
Run Code Online (Sandbox Code Playgroud)
我想用标签替换"点击这里"<img src=... />.我读了几个其他资源,努力学习Lars Olav Torvik的正则表达式工具,但是失败了!
请帮帮我!
就像有一个将图像转换为灰度的公式一样,是否有一个公式可以增加图像的亮度并将其降低到相同的水平?我尝试为每个r,g和b像素添加一个值.它确实增加了亮度,但当我减少相同的值时,我没有得到原来的值.
var pixels = context.getImageData(...);
//loop over the pixel data and add a value
p[i] = p[i]+100;
p[i+1] = p[i+1]+100;
p[i+2] = p[i+2]+100;
Run Code Online (Sandbox Code Playgroud)
这使图像变亮.但是当我从每个像素减少100时,我没有得到原始图像.
我在网上看到,有一些公式可以正确计算.有人能解释一下吗?同样对比度和伽玛?
更新:
谢谢大家的建议.经过以下的一些帖子后我尝试了这个.
为了增加亮度:
var pixels = context.getImageData(...);
//loop over the pixel data and add a value
p[i] = p[i]+100 < 255 ? p[i]+100 : 255;
p[i+1] = p[i+1]+100 < 255 ? p[i+1]+100 : 255;
p[i+2] = p[i+2]+100 < 255 ? p[i+2]+100 : 255;
Run Code Online (Sandbox Code Playgroud)
并为降低亮度:
var pixels = context.getImageData(...);
//loop over the pixel data and add …Run Code Online (Sandbox Code Playgroud) 我有一个在端口 8080 上运行的 VueJS UI,而处理身份验证的 Node 服务器在 8082 上运行。登录后,我们的身份验证服务器重定向回 UI,并设置所需的会话 cookie。当我单击“注销”按钮时,我需要在前端中将此 cookie 设置为 null,然后再重定向到负责处理后端详细信息的服务器注销操作。
我无法访问 document.cookie,或使用 Vue.cookie 删除 cookie。这两个方法都将 cookie 值返回为 null。我该怎么做呢?
我一直在努力实现这一目标!我们不希望有额外的依赖,因此不使用UI可拖动.无论我尝试过什么都在这里:http://jsfiddle.net/wSTcJ/
<div id="cont">
<div id="test">
</div>
<div id="test2">
</div>
<div id="drag">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery代码在Fiddle中.
第一个div在第二个下面.第二个宽度保持为0,现在当我拖动拖动条时,我想调整此div的宽度,显示其内容,从而重叠第一个内容.我的代码允许我拖动,但在一段时间后停止并且不会从右向左拖动!
有什么想法使它运作?
我想使用 JavaScript 在我的 html 文件中对谷歌地图进行“屏幕截图”。
地图当前正在加载div标签,因此我无法使用此<div>标签获取图像。
但是如果我可以在画布中加载它,<canvas>那么我可以很容易地截取它的屏幕截图,谁能告诉我这个问题的解决方案 - 也就是说,我如何在画布中加载谷歌地图。
或者是否有任何替代解决方案?
我找到了增加伽马的方法,但没有办法减少它!本文阐述了增加伽马值的公式。该公式适用于增加伽马值,但不适用于减少伽马值,即使我将减少值应用到画布的新实例上也是如此。我尝试重新绘制画布并使用负值进行伽玛计算,但我没有找回原来的画布。
//For increasing, I tried
gamma = 0.5;
gammacorrection = 1/gamma;
r = Math.pow(255 * (r / 255), gammacorrection);
g = ...
b = ...
//For decreasing
gamma = -0.5;
gammacorrection = 1/gamma;
r = Math.pow(255 * (r / 255), gammacorrection);
g = ...
b = ...
Run Code Online (Sandbox Code Playgroud)
第一部分有效。第二个没有。