考虑以下代码(包括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论坛.
我写了一个简单的.BAT脚本,我在Windows服务器上安排它进行备份.问题是它运行一个应用程序,但输出不会进入它所在的文件夹,它会在某个地方(我不知道在哪里).输出是日志文件和备份文件.
这是脚本:
"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
Run Code Online (Sandbox Code Playgroud) 我在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) 这是相对于tomcat + spring + linux。我想知道什么是存储文件的好习惯和地方。我的想法是将所有内容都放在文件系统上,然后使用数据库来跟踪它们。我的疑问在哪里?实际上,我可以将所有内容都放在webapp目录中,但是那样一来,一些好的同事甚至我都可能会忘记这一点,并在清理+部署期间擦除所有内容。另一个想法是在文件系统中使用一个文件夹...但是在Linux中,哪个是标准的?除此之外,还有权限问题,我假设tomcat以tomcat用户身份运行。因此,它无法随意在文件系统中创建文件夹。我必须使用root用户自己创建它,然后更改所有者。...这没什么问题,但是我想使该过程自动化,因此不需要干预。有什么提示吗?
我正在尝试学习 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%)。为什么?
我有一个简单的类,这些也是简单的构造函数:
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) 我正在编写一些必须通过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 ......现在我读,我可能会初始化ostringstream与ostringstream(ios::bin)...它会解决这个问题(前提是我将使用反序列化功能,将使用istringstream(ios::bin)???我对整个图片感到困惑,如果你可能花费一些澄清线,将非常感激.
谢谢.
我写了这个:
#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) 如果我这样写:
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)。
这是出于测试目的,而不是实际的生产代码