小编Wer*_*001的帖子

使用ImageMagick将EXIF数据提取为文本

有没有一种简单的方法可以使用ImageMagick从图像文件中提取EXIF数据作为文本.类似于IPTC数据的方式:

convert input.jpeg data.iptc <= binary data
convert input.jpeg data.iptctext <= textual data
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不适用于EXIF数据:

convert input.jpeg data.exif <= binary data
convert input.jpeg data.exiftext <= not working
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用

identify -verbose input.jpeg
Run Code Online (Sandbox Code Playgroud)

但是我必须解析结果才能搜索所有EXIF和IPTC数据.

那么使用纯ImageMagick有一个简单的方法吗?

exif imagemagick

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

转换CMYK => RGB虽然使用颜色配置文件但颜色不正确

我有一个CMYK tif图像,想要使用ImageMagick将其转换为RGB jpeg/png.即使我手动指定sRGB配置文件,tif图像也会集成一个配置文件,但ImageMagick无法正确转换(颜色完全不正确).

目前我正在使用此测试文件:http: //www.file-upload.net/download-8686107/testimage.tif.html

我尝试了以下命令(没有任何成功):

convert testimage.tif test.jpg
convert testimage.tif -colorspace RGB test.jpg
convert testimage.tif -colorspace sRGB test.jpg
convert testimage.tif -profile sRGB.icm test.jpg
convert testimage.tif -profile USWebCoatedSWOP.icc -profile sRGB.icm test.jpg
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么这些都没有正确转换图像?目前我正在使用

Version: ImageMagick 6.6.9-7 2012-08-17 Q16 http://www.imagemagick.org
Run Code Online (Sandbox Code Playgroud)

rgb imagemagick cmyk color-profile

6
推荐指数
0
解决办法
830
查看次数

Gradle 和 Flyway:无法获取资源的输入流

我遇到在 Gradle 项目中使用 Flyway 进行 migrateDb 有时会导致的问题

Unable to obtain inputstream for resource: META-INF/db/mysql/V1__script.sql
Run Code Online (Sandbox Code Playgroud)

此错误不会一直发生,而只是有时发生,但如果发生,它会非常持久,而且项目的清理/重建也无法解决它。

提到的 SQL 脚本包含在一个 JAR 文件中,该文件作为多模块项目的一部分从项目中引用。

我的研究只把我带到了https://github.com/flyway/flyway/issues/702但这并没有引导我走上正确的道路。

我也很困惑,flyway 能够在类路径搜索期间找到该文件,但随后无法获取输入流。

如果您需要任何进一步的信息,请询问。

进一步调试:似乎只要将新文件添加到 DB JAR 中,就会发生错误。重建并 migrateDb 后出现错误。如果我再次删除该脚本,尽管该脚本不再位于生成的 JAR 中,但错误仍然发生。所以我猜搜索脚本和检索输入流的类路径是不同的。有谁知道可能存在什么差异?

完整的堆栈跟踪:

Caused by: org.flywaydb.core.api.FlywayException: Unable to obtain inputstream for resource: META-INF/db/mysql/V1__script.sql
        at org.flywaydb.core.internal.util.scanner.classpath.ClassPathResource.loadAsString(ClassPathResource.java:84)
        at org.flywaydb.core.internal.resolver.sql.SqlMigrationResolver.scanForMigrations(SqlMigrationResolver.java:139)
        at org.flywaydb.core.internal.resolver.sql.SqlMigrationResolver.resolveMigrations(SqlMigrationResolver.java:99)
        at org.flywaydb.core.internal.resolver.sql.SqlMigrationResolver.resolveMigrations(SqlMigrationResolver.java:49)
        at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.collectMigrations(CompositeMigrationResolver.java:122)
        at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.doFindAvailableMigrations(CompositeMigrationResolver.java:104)
        at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.resolveMigrations(CompositeMigrationResolver.java:90)
        at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.resolveMigrations(CompositeMigrationResolver.java:43)
        at org.flywaydb.core.internal.info.MigrationInfoServiceImpl.refresh(MigrationInfoServiceImpl.java:114)
        at org.flywaydb.core.internal.command.DbValidate$2.call(DbValidate.java:164)
        at org.flywaydb.core.internal.command.DbValidate$2.call(DbValidate.java:157)
        at org.flywaydb.core.internal.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:75)
        at org.flywaydb.core.internal.command.DbValidate.validate(DbValidate.java:157)
        at org.flywaydb.core.Flyway.doValidate(Flyway.java:1280)
        at org.flywaydb.core.Flyway.access$100(Flyway.java:71)
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:1176)
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:1168) …
Run Code Online (Sandbox Code Playgroud)

gradle flyway

6
推荐指数
1
解决办法
2412
查看次数

在ExtJS 4中多次拥有相同视图和存储的最佳实践

我想在ExtJS应用程序中同时具有不同存储的相同视图的不同实例.目前,我在视口中停止了同一视图的多个实例(Ext.view.View).

但是,在每个视图中拥有不同商店的最佳做法是什么?我找到的每个示例都在使用控制器的stores-Config创建的视图中使用Store-ID.但是这会为每个视图使用相同的商店.

目前我想出了以下可能的解决方案:

  1. 为每个视图实例创建自己的商店类.将所有商店添加到控制器,并为每个视图实例使用不同的Store-ID.
  2. 根本不要使用控制器存储,并在视图的initComponent中创建一个新存储,手动将不同的参数传递给存储的每个实例.
  3. 根本不要使用控制器存储,并手动在视图的initComponent中创建新存储.然后使用load手动为每个商店实例使用不同的参数加载商店.

这些解决方案中的任何一种都是最佳实践,还是应该以不同方式完成

parameters extjs store

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

JDBC/MySQL:始终使用UTC保存时间戳

我想将时间戳保存到数据库,而不是由jdbc驱动程序转换为本地时区.目前只有MySQL和PostgreSQL对我很重要,但如果有一个独立于数据库的解决方案,我将不胜感激.

例:

// i want that to be saved as 1970-01-01 00:00:00
TimeStamp ts = new java.sql.Timestamp(0);

// gets transformed to local time by jdbc driver (in my case to 1970-01-01 01:00:00)
st.setTimestamp(0, new java.sql.Timestamp(0));

// only works using postgres (mysql connector seems to ignore the calendar)
// postgres => 1970-01-01 00:00:00
// mysql => 1970-01-01 01:00:0
Calendar calutc = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
st.setTimestamp(0, new java.sql.Timestamp(0), utccal);
Run Code Online (Sandbox Code Playgroud)

我已经尝试计算一个时间戳值,该值被转换为正确的值(例如-3600000 => 1970-01-01 00:00:00在我的时区)但这对于当天日期的postgres不起作用节约时间的变化.

mysql timezone timestamp jdbc utc

4
推荐指数
1
解决办法
7232
查看次数

MySQL InnoDB比MyISAM慢得多

我有两个表(缩小到重要字段):

syskeywordobjects:
pksyskeywordobjects BIGINT
fksyskeywords BIGINT
fkcontents BIGINT

fkcontents INDEX (fkcontents)
fksyskeywords INDEX (fksyskeywords)
fkcontents_fksyskeywords INDEX (fkcontents, fksyskeywords)


syskeywords:
pksyskeywords BIGINT
keyword VARCHAR

keyword INDEX (keyword)
Run Code Online (Sandbox Code Playgroud)

在这两个表上,我运行以下查询:

SELECT k.pksyskeywords, k.keyword, COUNT( k.pksyskeywords ) AS counter
FROM syskeywordobjects ko INNER JOIN syskeywords k ON ko.fksyskeywords = k.pksyskeywords
WHERE (
    k.pksyskeywords <> 1218713201167374664
    AND EXISTS (
        SELECT innerko.pksyskeywordobjects
        FROM syskeywordobjects innerko
        WHERE ko.fkcontents = innerko.fkcontents
        AND innerko.fksyskeywords = 1218713201167374664
    )
)
GROUP BY k.pksyskeywords, k.keyword
ORDER BY counter DESC 
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

如果表使用MyISAM,则查询大约需要1-2秒,但如果我使用InnoDB(我必须这样做)则需要25-30秒.为什么InnoDB慢了大约20倍? …

mysql performance myisam innodb

3
推荐指数
1
解决办法
1478
查看次数

在项目符号之前将列表项与自定义CSS内容对齐

我有这个HTML片段:

<ul class="custom">
    <li data-bullet="a">Item 1</li>
    <li data-bullet="aa">Item 2</li>
    <li data-bullet="ab">Item 3.1<br/>Item 3.2</li>
    <li data-bullet="c">Item 4</li>
    <li data-bullet="d">Item 5</li>
    <li data-bullet="de">Item 6</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

和CSS:

.custom {
    list-style:none;
    padding:0;
    margin:0;
}
.custom li:before {
    display:inline-block;
    content:attr(data-bullet);
    width:50px;
}

/*
.custom {
    list-style:none;
    padding:0;
    margin:0;
}
.custom li:before {
    display:inline-block;
    content:attr(data-bullet);
    position:relative;
    top:0;
    left:-50px;
}
.custom li {
    padding-left:50px;
}
*/
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/g0w989aa/1/

它在列表项的内容之前使用CSS以创建自定义列表编号.问题是如果列表项的内容长于一行,则文本的对齐不能正常工作.

有没有办法正确对齐线条的内容?我已经尝试将内容定位为相对并为列表项提供填充(请参阅示例中的注释掉的css),但这也不起作用.

css html5 css3 html-lists

3
推荐指数
1
解决办法
3786
查看次数

从编号中排除单个列表项

我有以下列表:

<ol>
   <li class="caption">Caption</li>
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
   <li>Item 4</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

我希望第一个li没有任何数字,第二个项目从数字1开始.这可能只使用CSS吗?

html css list

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

CSS 和处理指令

我有一个 HTML 文档,其中包含处理指令,并且应该使用 CSS 进行样式设置。我没有找到任何方法来引用CSS的处理指令。这可能吗?

<div>
  Hello World
  <?pi1 ?>
  Test
  <?pi2 ?>
</div>
Run Code Online (Sandbox Code Playgroud)

html css xml processing-instruction

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

与--stdin的unoconv无法正常工作

unoconv用来转换docxpdf。只要我通过文件名传递文档,一切都很好:

$ unoconv -f pdf --stdout test.docx
Run Code Online (Sandbox Code Playgroud)

但是,一旦我使用--stdin它就不再起作用了:

$ unoconv -f pdf --stdin --stdout < test.docx

Traceback (most recent call last):
  File "/usr/bin/unoconv", line 1275, in <module>
    main()
  File "/usr/bin/unoconv", line 1185, in main
    inputfn = sys.stdin.read()
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xad in position 41: invalid start byte
Run Code Online (Sandbox Code Playgroud)

这是同一个文件。为什么不起作用?

这是文件:https : //nofile.io/f/bKz1zWf745K/test.docx

encoding stdin utf-8 unoconv

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