我在Objective-C中使用OpenCV静态库来进行一些图像处理,虽然我的应用程序工作得很好,但在设备本身上却相当慢.事实上大部分处理都可以事先完成,所以我决定将序列化这些数据,然后在应用程序启动时加载它.
我需要序列化/存档的数据是CvSeq类型的对象(openCV序列 - 指向值序列的指针).我基本上想把它保存到文件中,以便以后加载它.我认为我可以通过创建一个遵循NSCoding协议并从那里编码/解码的类来做到这一点:
@implementation MyObject
@synthesize point = _point;
@synthesize description = _description;
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super init]) {
self.point = [decoder decodeObjectForKey:@"point"];
self.description = [decoder decodeObjectForKey:@"description"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.point forKey:@"point"];
[encoder encodeObject:self.description forKey:@"description"];
}
@end
Run Code Online (Sandbox Code Playgroud)
但是在decodeObjectForKey:和encodeObject:调用上我得到了错误
error: cannot convert 'objc_object*' to 'CvSeq*' in argument passing
Run Code Online (Sandbox Code Playgroud)
我的代码是否有问题,或者我是否需要采用另一种方法才能在我的对象中使用非Objective-C实例变量来实现相同的功能?
我可以运行以下 GhostScript 成功地将多个 PDF 合并到一个文件中:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=test.pdf file1.pdf file2.pdf file3.pdf
Run Code Online (Sandbox Code Playgroud)
我还需要向 PDF 添加自定义叠加层,因此我执行以下操作:
convert -density 300 -quality 100 file1.pdf -font /usr/share/fonts/urw-base35/NimbusSansNarrow-Regular.otf -pointsize 15 -fill '#000000' -draw 'rectangle 21,1114,675,1220' -fill white -annotate +440+1160 '1 / 3' -annotate +34+1213 'file1.pdf' file1_a.pdf
Run Code Online (Sandbox Code Playgroud)
...对于每个 PDF,然后我再次运行第一个gs命令来合并这些带注释的 PDF,但是当我这样做时,我收到以下错误:
**** Error: ICCbased space /N value does not match the ICC profile.
Using the number of channels from the profile.
Output may be incorrect.
Run Code Online (Sandbox Code Playgroud)
我确实找到了一些看起来相关的东西,表明 PDF 是错误的:https://bugs.ghostscript.com/show_bug.cgi ?id=697223
好吧,从根本上来说,您的 PDF 文件已损坏。它使用ICCBased色彩空间,并且色彩空间中声明的分量数量与ICC配置文件的实际内容不匹配。 …
这是我第一次尝试使用Javascript和jQuery进行数据验证.
我的错误数组已经填满了,但我的问题是检查这个数组是否为空.在我的情况下,它总是如此.它会一直提醒我"错误leeg",即使数组为空,检查console.log(error):
<script type="text/javascript">
$(document).ready(function ()
{
var error = [];
$('#contactformulier').submit(function() {
if($('input#namet').val().length == 0) {
error['naam'] = 'Geen geldige naam ingevuld';
} else{
delete error['naam'];
}
if($('input#mailt').val().length == 0){
error['mail'] = 'Geen geldig e-mailadres ingevuld';
} else{
delete error['mail'];
}
if($('textarea#message').val().length == 0){
error['bericht'] = 'Geen geldig bericht ingevuld';
} else{
delete error['bericht'];
}
console.log(error);
if (error.length < 1) {
alert('errors leeg');
}
return false;
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我写了一个函数,/etc/bashrc因为我经常使用它,但现在它似乎不起作用:
function replaceall() {
find "$1" -type f -exec sed -i "s|$2|$3|g" {} \;
}
Run Code Online (Sandbox Code Playgroud)
直接运行时,我会做类似的事情:
find ./*/conf/production/*.conf -type f -exec sed -i "s|/home/user/sites|/var/www/vhosts|g" {} \;
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.但是在使用该replaceall函数调用时它不起作用:
replaceall ./*/conf/production/*.conf "/home/user/sites" "/var/www/vhosts"
Run Code Online (Sandbox Code Playgroud)
注意:它在我使用时确实有效,replaceall . [...]这让我想知道,我是否遗漏了一些重要的语法?
archiving ×1
bash ×1
c++ ×1
find ×1
ghostscript ×1
imagemagick ×1
javascript ×1
jquery ×1
objective-c ×1
opencv ×1
sed ×1
validation ×1