小编And*_*ohr的帖子

使用ImageMagick将SVG转换为带抗锯齿的透明PNG

我想将SVG图像转换为具有透明背景和抗锯齿边缘的PNG文件(使用半透明像素).不幸的是,我不能让ImageMagick做抗锯齿,边缘总是看起来很糟糕.这是我试过的:

convert +antialias -background transparent  in.svg -resize 25x25 out.png
Run Code Online (Sandbox Code Playgroud)

我可以使用任何想法或不同的命令行工具?

svg png imagemagick inkscape

61
推荐指数
6
解决办法
4万
查看次数

具有多个参数的Android Plural字符串

在Android中的字符串,可以定义复数处理取决于供给所描述字符串的实际数量的翻译在这里.字符串还允许指定多个位置参数,类似于sprintf许多语言中的位置参数.

但是,请考虑以下字符串:

<resources>
    <string name="remaining">%1$d hours and %2$d minutes remaining.</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

它包含两个数字,我如何在Android中将其转换为复数?所有示例始终仅使用单个参数.这甚至可能吗?

android translation internationalization plural

14
推荐指数
2
解决办法
5916
查看次数

收到标题后立即触发下载对话框

我有一个PDF导出,需要一段时间来创建PDF.我希望用户能够单击导出链接并立即显示下载对话框.这样他们就可以开始下载并等待它完成.而不是单击链接,等待生成,然后再次等待下载.

这是PHP中一个非常简单的例子:

<?php

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename=test.pdf');
flush();

// time consuming PDF creation happens here
sleep(15);
echo 'pdf contents would be here';
Run Code Online (Sandbox Code Playgroud)

我们的想法是将相应的标题,flush()发送到浏览器,慢慢创建PDF并最终将其发送到浏览器.

这在chrome中非常有效.下载对话框立即弹出,睡眠是下载等待时间的一部分.

在Firefox和InternetExplorer中,这不起作用.这些浏览器在显示下载对话框之前等待整整15秒.

任何想法如何使下载对话框立即弹出将不胜感激.

php firefox internet-explorer http download

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

Linux:创建随机目录/文件层次结构

为了测试工具,我需要一个目录,其中包含深层嵌套结构中的一大堆不同的Office文件.我已将文件放在目录中,但现在需要创建一些随机嵌套的子目录并将其中的文件展开.

我可以坐下来用我选择的编程语言编写一个合适的程序,但我想知道是否有一个聪明的Linux命令行工具组合+ Bash来实现我想要的.

编辑:澄清一下,我的输入是一个包含大约200个文件的目录.输出应该是一个目录层次结构,包含或多或少均匀分布的这些文件.目录名称不应超过单个字母,长度随机变化,并使用各种允许的字符(utf-8文件系统).

linux bash shell command-line-interface

8
推荐指数
3
解决办法
9063
查看次数

Flutter MaterialApp Widget 参数中的本地化

按照12的教程,我正在尝试为我的 Flutter 应用程序设置本地化。这工作正常,我可以I18n.of(context).trans(<key>)用来访问我的小部件中的翻译字符串。

但是我不知道如何访问MaterialApp顶部小部件中的翻译:

import 'package:flutter/material.dart';
import 'package:flutter_app/i18n/i18n.dart';
import 'package:flutter_app/views/menu.dart';
import 'package:flutter\_localizations/flutter\_localizations.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      supportedLocales: [
        const Locale('en', 'US'),
        const Locale('de', 'DE'),
      ],
      localizationsDelegates: [
        const I18nDelegate(),
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate
      ],

      title: I18n.of(context).trans('title'), //FIXME doesn't work
      home: new Menu(),

    );
  }
}
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,我得到一个异常,因为I18n.of(context)返回null. 我错过了什么?

localization flutter

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

JavaScript或PHP中的3向合并

有没有人知道JavaScript或PHP中的开源三向合并实现?我想合并纯文本文件,而不需要依赖任何服务器端二进制文件.

我发现了一些创建差异的解决方案,但没有合并实现.

javascript php merge three-way-merge

7
推荐指数
2
解决办法
2181
查看次数

用于网址的意图过滤器

我正在尝试将我的Android应用注册为iCal网址的处理程序.为此,我在我的Manifest中为webcal://伪协议和使用text/calendarMIME类型的HTTP URL 设置了intent过滤器(见下文).

这在模拟器中工作得非常好,但在真实设备上我遇到了问题.该webcal://过滤器的工作原理,但text/calendar一个没有.相反,浏览器将ical文件显示为纯文本,而不是将URL传递给我的应用程序.

我检查了浏览器没有配置为ical的默认处理程序(在设置 - >应用程序 - >浏览器中),我问了一些其他人是否可以在他们的手机上重现问题.都具有相同的结果.

注册文本/日历URL的正确方法是什么?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="org.splitbrain.giraffe"
  android:versionName="0.31" android:versionCode="4">
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar">
    <activity android:label="@string/app_name" android:name="MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <category android:name="android.intent.category.BROWSABLE"></category>
            <action android:name="android.intent.action.VIEW"></action>
            <data android:mimeType="text/calendar" android:scheme="http"></data>
            <category android:name="android.intent.category.DEFAULT"></category>
        </intent-filter>
        <intent-filter>
            <category android:name="android.intent.category.BROWSABLE"></category>
            <action android:name="android.intent.action.VIEW"></action>
            <data android:scheme="webcal"></data>
            <category android:name="android.intent.category.DEFAULT"></category>
        </intent-filter>
    </activity>
    <activity android:name="OptionsActivity"></activity>
    <activity android:name="DetailActivity"></activity>
    <activity android:name="AboutActivity"></activity>

</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

更新:在Android 1.6模拟器中,上述工作正常,但在2.3.3模拟器上没有显示与我手机上相同的行为.这可能是Android中的一个错误吗?

android android-manifest android-intent

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

IOException访问Citrix挂载的驱动器时磁盘空间不足

我有一个非常奇怪的问题.我正在尝试下载一些文件和存储.我的代码相对简单直接(见下文),在我的本地机器上工作正常.

但它旨在在通过Citrix和VPN访问的Windows终端服务器上运行.该文件将保存到已安装的网络驱动器中.此挂载是通过Citrix VPN挂载的本地C:\驱动器,因此可能存在一些延迟.不幸的是,我没有详细说明整个基础设施是如何设置的...

现在我的问题是下面的代码抛出IOException告诉我在尝试执行write()调用时磁盘上没有剩余空间.目录结构创建正常,并创建零字节文件,但永远不会写入内容.

驱动器上有超过1 GB的可用空间,Citrix客户端已获得"完全访问"权限,并使用Windows资源管理器或记事本复制/写入该映射驱动器上的文件.只有Java在这给我带来麻烦.

我还尝试首先下载到临时文件然后将其复制到目标,但由于复制基本上与我原始代码中的流操作相同,因此行为没有变化.它仍然因磁盘空间不足而失败.

我不知道还有什么可以尝试的.你能提出什么建议吗?

public boolean downloadToFile(URL url, File file){                                                                  
    boolean ok = false;                                                                                             

    try {                                                                                                           
        file.getParentFile().mkdirs();                                                                              

        BufferedInputStream  bis = new BufferedInputStream(url.openStream());                                       
        byte[]            buffer = new byte[2048];                                                                  
        FileOutputStream     fos = new FileOutputStream(file);                                                      
        BufferedOutputStream bos = new BufferedOutputStream( fos , buffer.length );                                 
        int size;                                                                                                   
        while ((size = bis.read(buffer, 0, buffer.length)) != -1) {                                                 
            bos.write(buffer, 0, size);                                                                             
        }                                                                                                           
        bos.flush();                                                                                                
        bos.close();                                                                                                
        bis.close();                                                                                                

        ok = true;                                                                                                  
    }catch(Exception e){                                                                                            
        e.printStackTrace();                                                                                        
    }                                                                                                               

    return ok;                                                                                                      
}
Run Code Online (Sandbox Code Playgroud)

java windows citrix

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

在为PHP生成代码覆盖率时,Travis CI超时

我正在尝试让Travis CI输出一份报道报告,以便稍后与审查员一起使用.但是我很难让它发挥作用.

当我将--coverage-clover = coverage.clover添加到我的phpunit命令时,覆盖率报告的生成失败,并显示以下错误:

Generating code coverage report in Clover XML format ...PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/travis/.phpenv/versions/5.5.7/share/pyrus/.pear/php/PHP/Token.php on line 432

这让我很困惑,原因如下:

  • 在我的本地计算机上生成报告只需要大约3秒钟,这实际上似乎比测试服务器慢(从测试套件需要的时间来判断)
  • 命令行PHP通常没有超时,所以这似乎是故意在Travis-CI上设置的?
  • 似乎没有其他人有这种问题,因为我在谷歌搜索时找不到任何类似的报告
  • 我的phpunit的bootstrap.php文件显式调用 set_time_limit(0);

有没有办法解决这个问题?

完整构建日志,网址https://travis-ci.org/splitbrain/dokuwiki/jobs/16522833

phpunit code-coverage travis-ci

5
推荐指数
0
解决办法
664
查看次数

如何在本地测试 letencrypt 客户端?

有没有办法在没有可以验证的真实域的情况下在本地开发letsencrypt ACME客户端?例如。是否有一些测试域可以与 LE 沙盒服务器一起使用来伪造成功的域验证?

或者是通过将其部署到真实域并生成真实证书来测试和调试 letencrypt 客户端的唯一方法?如何将其集成到 CI 中?

lets-encrypt

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