小编Seb*_*tos的帖子

在分配时解压缩Golang切片?

在Golang中有一种优雅的方式可以从像Python这样的数组中进行多项赋值吗?这是我正在尝试做的Python示例(拆分字符串然后将结果数组分配给两个变量).

python:
>>> a, b = "foo;bar".split(";")
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案是:

x := strings.Split("foo;bar", ";")
a, b := x[0], x[1]
Run Code Online (Sandbox Code Playgroud)

我可以看到这在一些结构中变得混乱.我目前面临的一个实际例子是书签文件解析并分配给地图:

bookmark := make(map[string]string)
x := strings.Split("foo\thttps://bar", "\t")
name, link := x[0], x[1]
bookmark[name] = link
Run Code Online (Sandbox Code Playgroud)

现在我坐着一个无用的变量"x".我想做点什么:

bookmark := make(map[string]string)
name, line := strings.Split("foo\thttps://bar", "\t")
bookmark[name] = link
Run Code Online (Sandbox Code Playgroud)

但那是无效的.

go

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

如何使用Imagemagick批量转换图像到特定的百万像素?

我正在整理我的照片,并希望将它们调整到合理的范围.现在输入文件是小图像和大图像的混合,一些是风景,一些是塔.

我想将它们全部(高于阈值)调整为特定的百万像素大小,但到目前为止我发现的所有描述仅调整为固定大小/宽高比(例如1024x786)或固定百分比(例如50%).这些似乎都不适用于具有一些小图像(例如300x400)的文件夹和在3-12万像素范围内混合的图像.

我正在寻找一个宽高比独立选项,将它们全部放在同一个百万像素球场.有什么建议?

imagemagick

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

FileReader onload仅在Firefox中第二次运行?

我正在使用HTML5进行浏览器内图像处理,并且在Firefox中使用文件API FileReader类的onload事件处理程序(在chrome上正常工作)有一个奇怪的问题:文件只在第二次选中时正确处理表格.

知道如何让Firefox第一次处理这个事件吗?

Ps:我正在使用Linux,也许这是相关的?

JSFiddle:https://jsfiddle.net/ow126vah/

码:

var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');

fileInput.addEventListener('change', function(e) {

  var file = fileInput.files[0];
  var imageType = /image.*/;

  if (file.type.match(imageType)) {

    var reader = new FileReader();

    reader.onload = function(e) {

      var ctx = fileDisplayArea.getContext("2d");

      // create a new image from user selected file
      var img = new Image();
      img.src = reader.result;

      // set canvas size to image size
      fileDisplayArea.width = img.width;
      fileDisplayArea.height = img.height;

      // scale and draw image with offset …
Run Code Online (Sandbox Code Playgroud)

javascript firefox dom

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

QSqlQuery 与 SQLite 数据库:准备 + bindValue 不更新表

我在使用 QSqlQuery 时遇到问题:它没有更新我的 SQLite 数据库。

我像这样初始化数据库(工作正常):

myDB = QSqlDatabase::addDatabase("QSQLITE");
myDB.setDatabaseName(QDir::homePath() + QDir::separator() + "file.db");
myDB.open();

if(!myDB.tables().contains("presets")) {
    myDB.exec("CREATE TABLE presets (id INTEGER PRIMARY KEY ASC, path TEXT);");
    for (int i=0; i<10; i++)
        myDB.exec("INSERT INTO presets (path) VALUES ('n/a')");
}
Run Code Online (Sandbox Code Playgroud)

我有一个 QString 值数组,我想更新到那里。

QString presets[10];
preset[0] = "foo";
preset[1] = "bar";
...
Run Code Online (Sandbox Code Playgroud)

我尝试使用这样的 for 循环更新数据库:

QSqlQuery qPreset(myDB);
qPreset.prepare("UPDATE presets SET path=':path' WHERE id=':id';");
for (int i=0; i<10; i++){
    qPreset.bindValue(":path", presets[i]);
    qPreset.bindValue(":id", i+1);
    qPreset.exec();
}
Run Code Online (Sandbox Code Playgroud)

但是数据库中没有任何反应,我也没有收到任何错误消息。任何想法为什么?

编辑:

这(虽然丑陋)工作得很好,所以它不是连接:

for (int i=0; i<10; …
Run Code Online (Sandbox Code Playgroud)

qt

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

标签 统计

dom ×1

firefox ×1

go ×1

imagemagick ×1

javascript ×1

qt ×1