我想将 rawImg 转换为 base64 并将其传递给 image.src。我将需要 base64 dataURL 来在我的画布上添加效果。请在下面查看我的代码:
function onLoad() {
canvas = document.querySelector("#myCanvas");
context = canvas.getContext("2d");
var image = new Image();
image.onload = function () {
if (image.width != canvas.width)
canvas.width = image.width;
if (image.height != canvas.height)
canvas.height = image.height;
context.clearRect(0, 0, canvas.width, canvas.height);
context.drawImage(image, 0, 0, canvas.width, canvas.height);
filterCanvas(imageFilter);
}
var rawImg = "flower.jpg";
imageURL = <-- (convert rawImg to base64.. I dont know what to write here)
image.src = imageURL;
}
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码段,其中包含泛型和重载函数:
using System;
namespace Test_Project
{
public interface Interface
{
void f();
}
public class U : Interface
{
public void f() {}
}
public class Class<T> where T: Interface
{
public static void OverloadedFunction(T a)
{
Console.WriteLine("T");
a.f();
}
public static void OverloadedFunction(U a)
{
Console.WriteLine("U");
a.f();
}
}
class Program
{
public static void Invoke(U instance)
{
Class<U>.OverloadedFunction(instance);
}
static void Main(string[] args)
{
Invoke(new U());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我会说它不会编译,因为我有两个合适的OverloadedFunction候选方法.然而,它确实打印"U".
在生成的IL中,我可以看到:
.method public hidebysig static
void Invoke ( …Run Code Online (Sandbox Code Playgroud) 我有一个基本类型
template<int p>
struct Base {};
Run Code Online (Sandbox Code Playgroud)
以及基于许多版本的Base构建的更复杂的内容(有些是int模板,有些是类模板):
template<template<auto inner> typename basetype, typename p, typename q>
struct Complex {};
Run Code Online (Sandbox Code Playgroud)
然后,我创建这样的变量:
Complex<Base, Base<1>, Base<2>> c;
Run Code Online (Sandbox Code Playgroud)
有没有办法来推断我的第一个模板参数Base,或p和q专门的版本basetype,所以我可以写
Complex<Base<1>, Base<2>> c;
Run Code Online (Sandbox Code Playgroud)
我想没有。但是模板有时会隐藏一些魔术。
假设我有一个类型
template<typename ...Ts>
struct typelist {};
Run Code Online (Sandbox Code Playgroud)
我需要从此列表中获取一个子列表:
template<int startInclusive, int stopExclusive, typename ...Ts>
struct sublist {
using type = ?; //
};
Run Code Online (Sandbox Code Playgroud)
例如
sublist<1, 3, int, float, double, char>::type == typelist<float, double>
Run Code Online (Sandbox Code Playgroud)
当start = 0我有一个可行的尾部实现时:
template<typename ...Ts>
struct typelist {};
template<int N, typename T, typename ...Ts>
struct tail {
using type = typename tail<N - 1, Ts...>::type;
};
template<typename T, typename ...Ts>
struct tail<0, T, Ts...> {
using type = typelist<T, Ts...>;
};
using T = tail<1, int, …Run Code Online (Sandbox Code Playgroud) 考虑一下这段简单的代码
var date = new DateTime(1307, 10, 13);
Console.WriteLine(date.DayOfWeek);
Run Code Online (Sandbox Code Playgroud)
它输出:
星期四
但,
维基百科(法语版本)说,这个日期是星期五:
旺德雷迪历史博物馆1307年10月13日
谁是对的?
我的猜测是.Net没有考虑到日历/公历更改。
让我们考虑这段代码:
static void Main(string[] args)
{
Console.WriteLine(Marshal.SizeOf(typeof(bool)));
Console.WriteLine(String.Join(", ", BitConverter.GetBytes(true)));
}
Run Code Online (Sandbox Code Playgroud)
如果bool是1个字节,我希望它输出
1
1
如果bool是4个字节(作为一个int),我期望
4
1,0,0,0 //让我们忘记字节序
但是,它输出(在x64中)
4
1
在封送代码中,这对我来说是个大问题。我应该信任谁?
我正在 Windows 10 和 CUDA 9.2 上的 GeForce 1080 Ti (Pascal) 上运行玩具 CUDA 示例。
目标是测试CPU 的cudaMemPrefetchAsync ,因为它应该可以工作。
但是,我在该特定行上收到 CUDA 错误(无效的设备序号)。
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <cstdio>
#include <cstdlib>
void fill(int* a, int val, int N) {
for (int k = 0; k < N; ++k) {
a[k] = val;
}
}
__global__ void add(int* a, int* b, int N)
{
for (int i = threadIdx.x + blockIdx.x * blockDim.x; i < N; i += blockDim.x * gridDim.x) {
a[i] …Run Code Online (Sandbox Code Playgroud) 我有一个针对.NETFramework 4.0(具有强名称)的程序集(MYASM.dll)
我希望以某种方式部署此程序集,它是.NETFramework(或整个系统认为它)的一部分在目标计算机上.
我的意思是:
<Reference Include="MYASM" />提示路径的情况下看到它Add reference在Visual Studio中进行制作,<Reference Include="MYASM" />而无需强/全名我已经通过将其添加到GAC解决了1.(显然是2.).但这显然是不够的.
通过将我的程序集放在一个特殊的文件夹([INSTALLFOLDER]\lib)中并设置了registryKey,我已经部分解决了3.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\MyAssemblies
然后我可以做添加引用,但后来我得到:
<Reference Include="MYASM, Version=1.1, Culture=neutral, ..." />在我的csproj而不是<Reference Include="MYASM" />我想要的.
使用第二种方法,如果我手动编辑csproj,一切都很好,但我不能要求我的用户这样做.
我该怎么办?
[编辑]显然我有自己的MSI并不明显.但是我有.我不用魔棒控制用户的机器
c# ×4
.net ×2
c++ ×2
assemblies ×1
base64 ×1
bitconverter ×1
boolean ×1
canvas ×1
cuda ×1
datetime ×1
gac ×1
generics ×1
html ×1
image ×1
inheritance ×1
javascript ×1
overloading ×1
sizeof ×1
templates ×1
typelist ×1