小编Tom*_*ica的帖子

同步将Blob转换为二进制字符串

当用户复制画布选择时,我正在尝试将图像放入剪贴板:

画布选择

所以我认为正确的方法是将canvas tu dataURL,dataURL转换为blob和blob转换为二进制字符串.

理论上应该可以跳过blob,但我不知道为什么.

所以这就是我做的:

  function copy(event) {
    console.log("copy");
    console.log(event);

    //Get DataTransfer object
    var items = (event.clipboardData || event.originalEvent.clipboardData);
    //Canvas to blob
    var blob = Blob.fromDataURL(_this.editor.selection.getSelectedImage().toDataURL("image/png"));
    //File reader to convert blob to binary string
    var reader = new FileReader();
    //File reader is for some reason asynchronous
    reader.onloadend = function () {
      items.setData(reader.result, "image/png");
    }
    //This starts the conversion
    reader.readAsBinaryString(blob);

    //Prevent default copy operation
    event.preventDefault();
    event.cancelBubble = true;
    return false;
  }
  div.addEventListener('copy', copy);
Run Code Online (Sandbox Code Playgroud)

但是当DataTransfer对象在paste事件线程之外使用时,setData不再有任何机会生效. …

javascript synchronous filereader

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

尽可能快地获得bufferedimage和bufferedimage部分的平均颜色

我想在图像中找到图像.我这样做是为了桌面自动化.在这一刻,我想要快速,而不是精确.因此,我决定仅根据相同的平均颜色匹配相似的图像.

如果我在桌面上选择几个图标,例如:

几个桌面图标

我将搜索最后一个(我仍然想知道这个文件是什么):

一些文件图标

您可以清楚地看到最有可能匹配的内容:

图像显示区域中的平均颜色

在不同的情况下,这可能不起作用.但是,当给出图像大小时,它应该非常可靠且闪电般快速.

我可以将截图作为BufferedImage对象:

MSWindow window = MSWindow.windowFromName("Firefox", false);
BufferedImage img = window.screenshot();
//Or, if I can estimate smaller region for searching:
BufferedImage img2 = window.screenshotCrop(20,20,50,50);
Run Code Online (Sandbox Code Playgroud)

当然,搜索图像的图像将从保存在文件中的模板加载:

BufferedImage img = ImageIO.read(...whatever goes in there, I'm still confused...);
Run Code Online (Sandbox Code Playgroud)

我解释了我所知道的一切,以便我们可以专注于唯一的问题:

  • 问:如何在缓冲图像上获得平均颜色?如何在该图像的子矩形上获得这样的平均颜色?

速度在这里获胜.在这种特殊情况下,我认为它比代码可读性更有价值.

java bufferedimage computer-vision

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

java是否有一些约定来指示对象处于空状态?

当然,定义可以有所不同.我已经习惯了PHP的空,它会将空的所有内容调用为false.我想在我的Java应用程序中将这些东西称为空:

  • null
  • 字符串为零 length
  • 0 Integer,FloatDouble
  • false
  • 任何零长度的数组
  • ArrayListHashMap

例如,Java就是toString惯例.每个对象都被授予给你一些字符串表示.在我的Settings班上,我经营HashMap<String, Object>.我的empty方法现在看起来像这样:

  public boolean empty(String name) {
    Object val = settings.get(name);
    if(val!=null) {
      return false;
    }
    return true;
  }
Run Code Online (Sandbox Code Playgroud)

我想以传统的方式扩展它,而不是if(val instanceof XXX)链.

java oop

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

Equals方法与Throwable不兼容

我有一些外部提供的回调来运行.由于它们可以包含任何内容,我更愿意冒险捕获Throwable它们,从而从可恢复的任何错误中恢复.

除非错误连续重复两次,否则允许回调执行的某些阶段抛出错误.在这种情况下,它们被标记为无效,除非用户手动启动它们,否则它们将无法再运行.

这是用于处理该方法的方法:

  /**
   * Sets whether the bot is disabled due to error or not. If error has occured during 
   * getWindow, the bot will be disabled immediatelly. If the error occured during canRun() or run()
   * the bot will only be disabled if the error is repetitive.
   * @param error error that occured
   * @param phase phase of execution in which the error occured
   * @return true if this error is not significant enough to cancel …
Run Code Online (Sandbox Code Playgroud)

java error-handling equals

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

在Python中,`不是int`是否会返回false?

我正在使用参数解析器允许将端口号传递给我的程序.然后我尝试验证该值,并且第一个测试之一是is int测试:

    parser = argparse.ArgumentParser(description='Provides XML-RPC API.')
    parser.add_argument('--port', dest='port', default=9666, type=int,
                       help='port to listen on, 9666 by default.');
    args = parser.parse_args()

    if args.port is not int:
        raise TypeError("Port must be integer (%s given), use -h argument to get help."%(type(args.port).__name__))
    if args.port>=65536 or args.port<=0:
        raise IndexError("Port must be lower than 65536, 65535 is the maximum port number. Also, port can only be positive, non-zero number. Use -h argument to get help.")
    if args.port<=1204:
        print("Notice: ports up to 1024 are …
Run Code Online (Sandbox Code Playgroud)

python argparse

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

如何将此汇编时间戳函数转换为C++?

我试图将别人的项目从32位转换为64位.除了一个函数外,一切似乎都没问题,它使用了构建x64时Visual Studio不支持的汇编表达式:

// Returns the Read Time Stamp Counter of the CPU
// The instruction returns in registers EDX:EAX the count of ticks from processor reset.
// Added in Pentium. Opcode: 0F 31.
int64_t CDiffieHellman::GetRTSC( void )
{
    int tmp1 = 0;
    int tmp2 = 0;

#if defined(WIN32)
    __asm
    {
        RDTSC;          // Clock cycles since CPU started
        mov tmp1, eax;
        mov tmp2, edx;
    }
#else
    asm( "RDTSC;\n\t"
        "movl %%eax, %0;\n\t"
        "movl %%edx, %1;" 
        :"=r"(tmp1),"=r"(tmp2)
        :
        :
        );
#endif

    return ((int64_t)tmp1 …
Run Code Online (Sandbox Code Playgroud)

c++ inline-assembly rdtsc

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

从 [ ] 组正则表达式中排除字符,同时仍在查找字符

我想匹配所有不包含 letter 的单词l。我试过这个:

[a-z^k]+
Run Code Online (Sandbox Code Playgroud)

但显然^只在后面起作用[。如果只是 letter l,我想这会做:

[a-km-z]+
Run Code Online (Sandbox Code Playgroud)

当然,除了它只是将l-words 视为两个词这一事实之外:

图片说明

但这不是真正的问题,问题仍然与标题一样:

问:如何搜索字符列表,但排除另一个字符列表?

javascript regex

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

将 Object.defineProperty getter 恢复到原始状态,即正常的常量属性

我试图以某种方式实现状态效果,以便游戏程序中很少或没有if情况,也就是说,效果应该应用于对象。

我创建了一个简单的测试用例,这是我计划的基本框架:

// This can represent a game object - player or monster
var test = {damage: 20};
// For the sake of simplicity, I just define
// EffectMissfortune without inheriting other classes
function EffectMissfortune() {

}
/**
 * Applies effect on an object, altering it's properties 
 * until remove is called **/
EffectMissfortune.prototype.apply = function(obj) {
  // Remember oridinal damage
  obj._damage = obj.damage;
  // Define property getter
  Object.defineProperty(obj, "damage", {
    // Has about 40% chance to return …
Run Code Online (Sandbox Code Playgroud)

javascript prototype-programming

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

我们可以覆盖 Javascript DOM 对象原型属性吗?

我一直在寻找一种方法来永久更改 HTMLFormElement Javascript 对象的“onsubmit”行为。假设我的 JavaScript 之一包含以下代码:

HTMLFormElement.prototype.onsubmit = function () {
    this.submit();
    // Make sure that you can only submit once.
    this.onsubmit = function () {
        return false;
    };
    return false;
};
Run Code Online (Sandbox Code Playgroud)

这个想法只是为了防止所有形式的文档的重复提交。由于上面的示例不起作用,我无法弄清楚如何执行此操作。

有没有办法在文档加载后无需循环遍历所有现有 HTMLElement 来实现此目的?这是一种与某些较旧的浏览器兼容的方法,并且如果您使用其他脚本创建新的表单元素,也可以保留该行为。(仅限香草 JS)

html javascript dom ecmascript-5 ecmascript-6

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

没有Maven为我创建的依赖项的jar的用途是什么?

我正在使用Maven和我的配置(很可能是默认配置)产生这个:

图片描述

这意味着我的编译代码是文件的4%.最大的通货膨胀是由GitHub API库引起的 - 我强烈考虑我会放弃它.

但我的问题是关于小文件,而不是大文件.Maven创造它是有原因的吗?我可以以某种方式分发它并让它在客户的计算机上工作吗?它为什么存在,可以用做些什么

java maven

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