小编Reg*_*lez的帖子

在图像 src 上画布到 base64

我想将 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)

html javascript base64 canvas image

4
推荐指数
1
解决办法
7360
查看次数

重载,泛型和类型约束:方法解析

请考虑以下代码段,其中包含泛型和重载函数:

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)

c# generics inheritance overloading

4
推荐指数
1
解决办法
76
查看次数

C ++模板模板推断类型参数

我有一个基本类型

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,或pq专门的版本basetype,所以我可以写

Complex<Base<1>, Base<2>> c;
Run Code Online (Sandbox Code Playgroud)

我想没有。但是模板有时会隐藏一些魔术。

c++ templates

4
推荐指数
1
解决办法
77
查看次数

C ++类型列表制作子列表

假设我有一个类型

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)

c++ typelist variadic-templates

4
推荐指数
1
解决办法
104
查看次数

为什么Datetime.DayOfWeek是错误的?

考虑一下这段简单的代码

var date = new DateTime(1307, 10, 13);
Console.WriteLine(date.DayOfWeek);
Run Code Online (Sandbox Code Playgroud)

它输出:

星期四

但,

维基百科(法语版本)说,这个日期是星期五:

旺德雷迪历史博物馆1307年10月13

谁是对的?

我的猜测是.Net没有考虑到日历/公历更改。

.net c# datetime

4
推荐指数
1
解决办法
306
查看次数

Marshal.Sizeof和BitConverter.GetBytes在布尔值上的行为不同

让我们考虑这段代码:

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

在封送代码中,这对我来说是个大问题。我应该信任谁?

请注意,GetBytes将布尔值作为输入: 在此处输入图片说明

c# boolean sizeof bitconverter

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

cudaMemPrefetchAsync 上的设备序号无效

我正在 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)

cuda

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

将程序集部署为.Net Framework的一部分

我有一个针对.NETFramework 4.0(具有强名称)的程序集(MYASM.dll)

我希望以某种方式部署此程序集,它是.NETFramework(或整个系统认为它)的一部分在目标计算机上.

我的意思是:

  1. .NET运行时看到它看到System.dll(无需在本地部署或提供引用路径)
  2. MSBuild在不需要<Reference Include="MYASM" />提示路径的情况下看到它
  3. 用户可以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并不明显.但是我有.我不用魔棒控制用户的机器

.net c# assemblies gac visual-studio

-1
推荐指数
1
解决办法
252
查看次数