小编got*_*ch4的帖子

使用jQuery创建时,图像绘制拉伸到HTML Canvas

考虑以下代码(包括jQuery):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src = "js/jquery-1.4.2.js"></script>
<script type="text/javascript">

jQuery(window).bind("load", function() {
    var elem = $("<canvas>", {width:300, height:300});

    var canvele = elem[0];


    var imm = new Image();

    imm.src = "card1/mask-x-6.png";
    imm.onload = function(){
        var ctx = canvele.getContext('2d');
        ctx.drawImage(imm, 0,0);
        $('body').append(elem);
    }
});


</script>
</head>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这将导致图像拉伸,而不是原始宽高比.在Firefox和Chrome上都有.为什么会这样?解决方法?


更新

道歉,如果我不使用jQuery生成canvas元素,这件事就不会发生.我也会把它发布到jQuery论坛.

jquery html5 canvas

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

如何让从BAT文件运行的程序在自己的目录中运行?

我写了一个简单的.BAT脚本,我在Windows服务器上安排它进行备份.问题是它运行一个应用程序,但输出不会进入它所在的文件夹,它会在某个地方(我不知道在哪里).输出是日志文件和备份文件.

这是脚本:

"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
Run Code Online (Sandbox Code Playgroud)

windows batch-file scheduled-tasks

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

gtk初学者应用程序无法使用断言失败

我在Gtk中完成了这个简单的应用程序,只是为了测试一下......我来自摇摆,所以重新定义绘制事件功能对我来说是正常的...无论如何似乎不起作用:

#include <gtk-2.0/gtk/gtk.h>
#include <gtk-2.0/gdk-pixbuf/gdk-pixbuf.h>
#include <stdlib.h>
#include<string.h>
#include<stdio.h>
#include <iostream>

GdkPixbuf *imm;

void destroy(GtkWidget *widget, gpointer data) {
    gtk_main_quit();
}

gboolean on_expose_event(GtkWidget *widget, GdkEventExpose *event,
        gpointer data) {
    gdk_draw_pixbuf((GdkDrawable*) widget, widget->style->white_gc, imm, 0, 0,
            0, 0, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
    return FALSE;
}

int main(int argc, char** argv) {

    char* filename = new char[1000];
    GError *error = NULL;
    GtkWidget *window;

    gtk_set_locale();
    gtk_init(&argc, &argv);

    if (argv[1] == NULL) {
        std::cout << "Err.";
        return -1;
    }

    strcpy(filename, argv[1]);

    imm = …
Run Code Online (Sandbox Code Playgroud)

c gtk

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

建议的位置和做法来存储从Tomcat应用程序生成的文件?

这是相对于tomcat + spring + linux。我想知道什么是存储文件的好习惯和地方。我的想法是将所有内容都放在文件系统上,然后使用数据库来跟踪它们。我的疑问在哪里?实际上,我可以将所有内容都放在webapp目录中,但是那样一来,一些好的同事甚至我都可能会忘记这一点,并在清理+部署期间擦除所有内容。另一个想法是在文件系统中使用一个文件夹...但是在Linux中,哪个是标准的?除此之外,还有权限问题,我假设tomcat以tomcat用户身份运行。因此,它无法随意在文件系统中创建文件夹。我必须使用root用户自己创建它,然后更改所有者。...这没什么问题,但是我想使该过程自动化,因此不需要干预。有什么提示吗?

linux tomcat file

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

在 Mono 上重试似乎会产生无限循环

我正在尝试学习 Reactor,我创建了以下示例:

  fun dbThingErrorSometimes() : Mono<String> {
        return if (Random.nextBoolean()){
            processDbResult(pooledClient.execute("SELECT * FROM product"))
        }else{
            Mono.error(RuntimeException("boom"))
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后我在使用它的地方(在控制器中):

 @RequestMapping("/dbpooledretry")
    @ResponseBody
    fun dbExamplePoolRetrying(): Mono<String> {
        return dbService.dbThingErrorSometimes()
                .retry()
    }
Run Code Online (Sandbox Code Playgroud)

当它出现错误时,它会陷入无限循环(其余调用永远不会返回,CPU 达到 100%)。为什么?

project-reactor spring-webflux

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

在Qt应用程序中使用时出现奇怪的类行为

我有一个简单的类,这些也是简单的构造函数:

audio::audio() {
    channels = NULL;
    nChannels = 0;  
}

audio::audio(const char* filename) {
    audio();
    getFromFile(filename);
}
Run Code Online (Sandbox Code Playgroud)

(在此之前audio():channels(NULL), nChannles(0), loaded(false){...,我会说以后为什么会改变......).该函数getFromFile如下所示:

void audio::getFromFile(const char* filename) {
    baseUtils::dynVec<float> *chans;
    if (channels != NULL)
        deleteChannels();
    sox_format_t *in;
    sox_sample_t buff[AUDIO_CLASS_READ_SAMPLES];
    sox_sample_t sample;
...
Run Code Online (Sandbox Code Playgroud)

如您所见,它检查是否loaded为真,以及是否delete在内部缓冲区上运行了一些(s).当然,正如您从构造函数中看到的那样,在第一次运行时loaded为false,然后第二个构造函数将调用第一个构造函数然后执行loaded = false.

如果我在一个简单的命令行应用程序中运行此类,一切运行正常.但是,如果我把它放在Qt应用程序中,恰好在一个插槽中执行此操作:

void buttonPushed() {

        QString s = QFileDialog::getOpenFileName();
        std::cout << "file choosen: " << s.toStdString() << "\n";
        sndfile = s.toStdString();
        if (aud == NULL){
            aud = …
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

C++中的网络协议对象序列化

我正在编写一些必须通过TCP/IP发送数据的C++代码.我希望这段代码可以在Linux/Windows/Osx上移植.现在,因为这是我第一次编写便携式网络代码,我基本上需要一些简单的函数来添加到某些对象,如:

class myclass{

...member...

public:

  string serialize(){
    std::ostringstream out();
    out << member1;
    out << member2;
    out << member3;
    return out.str();
  }

}
Run Code Online (Sandbox Code Playgroud)

......这就是我现在所需要的一切.无论如何,我开始阅读ostringstream相关的文档,并结果发现二进制/文本问题.事实上,它会将换行符转换为everysystem的正确顺序.例如,假设一个成员是一个指向const char*foo ="Hello \nMan \n"的指针,它将在linux上以某个字节顺序翻译,另一个在Windows上翻译......依此类推.我的字节将去一个数据包在互联网上,不同的操作系统的机器会读他们,我想麻烦会occurr ......现在我读,我可能会初始化ostringstreamostringstream(ios::bin)...它会解决这个问题(前提是我将使用反序列化功能,将使用istringstream(ios::bin)???我对整个图片感到困惑,如果你可能花费一些澄清线,将非常感激.

谢谢.

c++ networking cross-platform stream

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

为什么这个简单的Boost :: asio程序不能按预期工作?

我写了这个:

#include <vector>
#include <iostream>
#include <sstream>
#include <boost/asio.hpp>
#include <tr1/memory>
#include <boost/bind.hpp>
#include <stdint.h>

    using namespace boost::asio;
    using namespace boost::asio::ip;

class tcpServer{
public:

    class connection{

        tcp::socket socketConnection;

        enum {CONNECTED, CLOSED, CREATED}STATUS;

    public:

        uint32_t addr;
        uint16_t port;

        connection(boost::asio::io_service &ioServ): socketConnection(ioServ){
            STATUS = CREATED;
        }

        void setConnected(bool is) {
            if (is) {
                STATUS = CONNECTED;
                port = socketConnection.remote_endpoint().port();
                addr
                        = socketConnection.remote_endpoint().address().to_v4().to_ulong();
                std::cout << "Connected to "
                        << socketConnection.remote_endpoint().address().to_v4().to_string()
                        << " : " << socketConnection.remote_endpoint().port()
                        << "\n";
            }
        }

        tcp::socket& getSocket(){
            return …
Run Code Online (Sandbox Code Playgroud)

c++ boost-asio

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

如何在气流中自动激活 DAGS

我是气流新手,我想知道如何让 DAG 在加载后自动激活。

在此输入图像描述

我的意思是开关,默认情况下它们是关闭的

airflow

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

为什么在python类中设置方法在调用时不会传递self?

如果我这样写:

class A:
    def a(self):
        return 2
    def b(self):
        print(self.a())

e = A()

def xa(self):
    return 3 

e.a = xa
e.b()
Run Code Online (Sandbox Code Playgroud)

会爆炸说:

TypeError: xa() missing 1 required positional argument: 'self'
Run Code Online (Sandbox Code Playgroud)

为什么会这样?(如果xa没有参数,那么它可以工作,打印3,但是我无法访问self)。

这是出于测试目的,而不是实际的生产代码

python python-object

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