我正在使用ACTION_PICK意图从图库中选择一个图像.一些专辑,如"帖子","个人资料照片"等,都标有Picasa图标.对于来自此类相册的图片,我得到一个类似于此的URI:
content://com.google.android.gallery3d.provider/picasa/item/5769844615871490082
Run Code Online (Sandbox Code Playgroud)
我可以使用ContentResolver并且BitmapFactory没有问题从这个URI加载图像:
final InputStream ist = context.getContentResolver().openInputStream(intent.getData());
final Bitmap bitmap = BitmapFactory.decodeStream(ist);
Run Code Online (Sandbox Code Playgroud)
但是在重新启动应用程序后,我无法使用存储的URI加载图像.我打电话的时候decodeStream()会得到这个:
03-11 12:34:56.502: A/libc(1172): Fatal signal 11 (SIGSEGV) at 0x00000408 (code=1), thread 1462 03-11 12:34:56.502:
W/ActivityManager(478): Permission Denial: opening provider
com.android.gallery3d.provider.GalleryProvider from
ProcessRecord{41cdd220 1172:com.mycompany.myapp/u0a10085}
(pid=1172, uid=10085) requires
com.google.android.gallery3d.permission.GALLERY_PROVIDER or
com.google.android.gallery3d.permission.GALLERY_PROVIDER
Run Code Online (Sandbox Code Playgroud)
我试着补充一下
<uses-permission android:name="com.google.android.gallery3d.permission.GALLERY_PROVIDER"/>
Run Code Online (Sandbox Code Playgroud)
清单文件,但它没有帮助.
我认为我的问题类似于这个,但没有解决方案,只有一个解决方法.是否可以请求访问存储的URI的权限?
android picasa android-intent android-contentresolver android-contentprovider
我正在尝试使用AWS SimpleDB Javascript SDK.这是我的脚本的网页:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script src="https://dl.dropboxusercontent.com/u/4111969/aws-sdk-2.1.39.js"></script>
<script type="text/javascript">
AWS.config.update({accessKeyId: 'MYKEY', secretAccessKey: 'MYSECRET'});
AWS.config.region = 'us-east-1';
AWS.config.logger = console;
</script>
<script>
var simpledb = new AWS.SimpleDB({region:'us-east-1'});
var params = { MaxNumberOfDomains: 1 };
simpledb.listDomains(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我运行这个网页时,我收到此错误:
XMLHttpRequest无法加载https://sdb.amazonaws.com/.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.响应具有HTTP状态代码400.
我认为这是由于CORS政策.但我找不到为SimpleDB设置CORS的方法,所以我在浏览器中安装了一个AddOn,允许从任何来源请求任何带有ajax的站点.
打开AddOn后,我得到一个不同的错误:
XMLHttpRequest无法加载https://sdb.amazonaws.com/.无效的HTTP状态代码400
我尝试从本地文件运行此脚本并将其托管在AWS S3上.我仍然得到同样的错误.我确信我的帐户中存在数据库,我可以使用其他工具访问它.但我需要使用JavaScript访问它.我究竟做错了什么?
编辑: 来自浏览器控制台的更多信息
这样的事情可能吗?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="@string/package_name"
android:versionCode="1"
android:versionName="@string/version_name">
Run Code Online (Sandbox Code Playgroud)
上面的代码给了我一个错误:
C:\ android-sdk\tools\ant\build.xml:539:应用程序包'@ string/package_name'必须至少有2个段.
我的字符串在res/strings.xml中定义,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My app</string>
<string name="version_name">1.00</string>
<string name="package_name">com.mycompany.myapp</string>
Run Code Online (Sandbox Code Playgroud)
如果我用@string/package_name包的名称替换,android:versionName似乎设置正确.
所以问题是为什么包名不起作用android:versionName?
编辑: 有没有办法使用外部文件中指定的包名?
我需要为我的GDI + GraphicsPath绘制一个柔和的宽轮廓.像这样的东西:

路径边缘以红色显示.我想用一支光滑的宽笔.我还需要能够控制笔的平滑度.
我试图用笔使用渐变画笔,但找不到有效的解决方案.
我可以通过使用黑色实心笔绘制轮廓并在结果图像上应用高斯平滑滤镜来实现所需的结果,但我想避免这种情况,因为当我必须处理可能非常大的整个图像时它很慢.
有没有办法画出平滑的路径轮廓?
我需要在HTML5画布上的精确位置绘制文本字符串.
<!DOCTYPE html>
<html>
<body>
<canvas id="mainCanvas" width="320" height="240" style = "border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>
<script>
window.onload = function() {
var canvas = document.getElementById("mainCanvas");
var ctx = canvas.getContext("2d");
ctx.textBaseline = "top";
ctx.font = '100px Arial';
ctx.textAlign = 'left';
ctx.fillStyle = 'rgba(0, 0, 0, 255)';
ctx.fillText('Test', 0, 0);
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我将在画布上绘制其他元素(例如图像,形状),并且我需要确保文本出现在所有浏览器中的相同位置.可能吗?
我正在尝试使用JavaScript访问AWS SimpleDB.我的代码如下:
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.38.js"></script>
<script type="text/javascript">
AWS.config.update({accessKeyId: 'mykey', secretAccessKey: 'mysecret'});
AWS.config.region = 'us-east-1';
</script>
<script>
var simpledb = new AWS.SimpleDB();
</script>
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
TypeError:AWS.SimpleDB()不是构造函数
我尝试创建AWS.S3()对象,它工作正常.
使用简单的JavaScript初始化和使用SimpleDB的正确方法是什么?
我正在使用这样的意图:
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
Run Code Online (Sandbox Code Playgroud)
在onActivityResult()我有这个:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK) {
return; // user cancelled
}
Uri imageUri = data.getData();
if (imageUri == null) {
// (code to show error message goes here)
return;
}
// Get image path from media store
String[] filePathColumn = { android.provider.MediaStore.MediaColumns.DATA };
Cursor cursor = this.getContentResolver().query(imageUri, filePathColumn,
null, null, null);
if (cursor == null || !cursor.moveToFirst()) { …Run Code Online (Sandbox Code Playgroud) 我需要在后台线程上绘制文本以将其保存为图像.
我正在做
UIGraphicsPushContext()
[NSString drawInRect:]
UIGraphicsPopContext()
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但有时它在drawInRect中崩溃,当我也在同时绘制主线程时.
我尝试使用NSAttributedString,如下所示: UIStringDrawing方法似乎在iOS 6中不是线程安全的.但是[NSAttributedString drawInRect:]由于某种原因似乎没有在我的后台线程上呈现任何内容.主线程似乎工作正常.
我一直在考虑使用Core Text,但看起来Core Text也有类似的问题:CoreText在多个线程中运行时崩溃
是否有线程安全的方式来绘制文本?
更新: 如果我运行此代码,它几乎立即崩溃在drawInRect与EXC_BAD_ACCESS:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), NO, 0);
UIFont* font = [UIFont systemFontOfSize:14.0f];
for (int i = 0; i < 100000000; i++) {
[@"hello" drawInRect:CGRectMake(0, 0, 100, 100) withFont:font];
}
UIGraphicsEndImageContext();
});
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), NO, 0);
UIFont* font = [UIFont systemFontOfSize:12.0f];
for (int i = 0; i < 100000000; i++) {
[@"hello" drawInRect:CGRectMake(0, 0, 100, 100) withFont:font];
}
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
如果我删除UIFont并只绘制没有字体的文本,它可以正常工作.
更新: 这似乎只在iOS …
我正在尝试使用 tee 将流输出到 1 分钟的片段并同时输出到文件中。这是我的命令:
ffmpeg -i "rtsp://${cameraIp}:554/axis-media/media.amp?videocodec=h264&resolution=1280x720&fps=15" -c copy -map 0 \
-f tee "[f=ssegment:segment_time=60:segment_format=mp4:reset_timestamps=1:r=15] ${rootPath}/${storeId}-${location}-%03d.mp4 \
| /tmp/${cameraIp}.mkv"
Run Code Online (Sandbox Code Playgroud)
单独(无三通)两个输出都工作正常。所以我可以输出到分段文件或非分段文件。但是使用 T 恤时我收到此错误:
[stream_segment,ssegment @ 0x217ece0] 无法打开段' /etc/cida/diagnostics/vid/780801-99-000.mp4' [tee @ 0x217d820] 从站'[f=ssegment:segment_time=60:segment_format=mp4:reset_timestamps =1:r=15] /etc/cida/diagnostics/vid/780801-99-%03d.mp4':写入标头时出错:没有这样的文件或目录
请参阅下面的完整命令输出。有什么建议么?
ffmpeg 版本 3.3 版权所有 (c) 2000-2017 FFmpeg 开发人员
使用 gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 构建配置: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir =/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-解码器=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable -libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack …