我们可以使用java,imagemagick或jmagick找到图像中哪种颜色占主导地位?
java.lang.UnsatisfiedLinkError:在java.lang.ClassLoader.loadLibrary(ClassLoader.java:1754)的java.library.path中没有JMagick,位于java.lang.System的java.lang.Runtime.loadLibrary0(Runtime.java:823) .loadLibrary(System.java:1045)
在尝试使用代码时
ImageInfo info;
try {
info = new ImageInfo();
//image = new MagickImage(info);
} catch (MagickException e) {
logger.error(InsightsHelper.getStackTrace(e));
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?我在OSX上使用eclipse
我找到了一个链接,显示如何隐藏图像文件中的文件数量:http://lifehacker.com/282119/hide-files-inside-of-jpeg-images更多关于检测的讨论:http:// ask .metafilter.com/119943 /如何对检测-RARsEXEs隐藏式,JPG图片
我试图找出什么是以编程方式检测图像文件是否隐藏在其中的其他文件的好方法?我应该尝试解压缩文件,看看是否有其他文件出来?
我没有以编程方式绑定,但在JVM上运行良好的东西会很棒.
更新
一种方法:
会不会像这样的工作(由metafilter上的某人建议)
$ cat orig.jpg test.zip > stacked.jpg
$ file stacked.jpg
stacked.jpg: JPEG image data, JFIF standard 1.01
$ convert stacked.jpg stripped.jpg # this is an ImageMagick command
$ ls -l
11483 orig.jpg
322399 stacked.jpg
11484 stripped.jpg
310916 test.zip
Run Code Online (Sandbox Code Playgroud)
我可以使用JMagick这种方法.
如何使用JMagick API转换颜色空间?
例如CMYK - > RGB和RGB - > CMYK.
对于部署,我将使用Linux,但开发是在Windows上完成的.最近有人在Windows上使用它吗?你有什么问题吗?
您是否有可以共享的VC++更新的Makefile?似乎最新Magick的目录结构与我在jmagick中找到的旧makefile所期望的完全不同.
情节变粗.在我尝试编译c源代码时,它正在查找源代码树中不存在的magick_ImageInfo.h等文件.
我对JMagick库有一些奇怪的问题.我使用Debian,所以我安装了libjmagick6-java和libjmagick6-jni,这是我已经完成的步骤:
jmagick-6.6.9.jar
自/usr/share/java/
到$JAVA_HOME/jre/lib/ext/
./usr/lib/jni
(在哪里libJMagick.so
)设置为本机库位置:
我也在简单的Java项目中测试了JMagick并且它可以工作,但是在第二个项目中,它是在Tomcat 6中运行的Web应用程序,它只是不起作用..
这是我的代码WORKS - 所以jmagick必须正确安装:
public class Main {
public static void main(String[] arg) {
MagickImage image = null;
ImageInfo imageInfo = null;
try {
imageInfo = new ImageInfo("/home/firzen/IMG_0120.JPG");
image = new MagickImage(imageInfo);
System.out.println(image.getDimension().width);
} catch (MagickException e) {
System.out.println(e);
}
image.destroyImages();
}
}
Run Code Online (Sandbox Code Playgroud)
这是webapp中的代码,它不工作:
public void init() {
ServletContext sc = getServletContext();
cacheHandlers = (Map<String, CacheContext>) sc.getAttribute("handlers");
Boolean applicationReady = (Boolean) …
Run Code Online (Sandbox Code Playgroud) 首先,我想说我不是图像处理专家.
我想将图像颜色空间从一个转换为另一个,并同时更改icc颜色配置文件.我设法使用JMagick(ImageMagick Java端口),但纯Java(甚至使用JAI)没办法.
ColdFusion有一个很棒的cfimage标签,可以很好地工作。但是,它不允许操纵矢量格式。这使我继续寻找3rd party工具来做一些“图像魔术”。
我决定在ColdFusion上尝试使用ImageMagick。我读过几篇帖子,上面写着“我曾经与ColdFusion的ImageMagick合作X年了”。这是令人鼓舞的,但在遇到问题时并不是特别有用。
我尝试了以下方法:
cfexecute(带有参数)以运行命令行“转换”命令。ColdFusion页面不产生任何内容-只是一个空页面。图像未转换。没有例外或文字显示在浏览器中。ImageMagick命令'convert image.eps image.jpg'可以从Windows命令行完美运行,但不能从ColdFusion运行。
Im4java和JMagick包装器可直接从Java对象运行IM命令。我使用CreateObject函数创建了Java对象,并试图执行其方法,但是仅遇到了不同类型的Java错误,例如“无法将image.jpg转换为整数”。
任何建议欢迎。
谢谢!
PS:我的第一个“ stackoverflow” :)
我正在寻找一个Java库来进行图像裁剪/调整大小.我曾计划使用jmagick,但自2009年以来似乎没有维护过.
这是最好用的库吗?有什么建议吗?!
编辑
我想要做的一件事是能够填充图像以调整大小以及裁剪它.即如果我有一个4x2的图像,并且我想使它成为一个正方形,我想使它成为4x4,每边都有黑色或白色填充.这在图像处理中是否有名称?它是任何库附带的功能吗?
我们有一些非常大的jpg,在A0打印机上打印时使用.
问题是我们需要将这个大图像转换为缩略图,以便在一些Java UI中使用.
有没有办法转换图像(使用Java)而不将整个图像加载到内存中?目前,当我们尝试加载图像时,我们会出现内存异常.
标准代码中是否有任何内容或者我最好使用jmagick?纯Java实现最适合我们的部署.
谢谢
我需要知道如何将 imagemagick 命令行命令转换为 java im4java 代码命令行:
convert -limit memory 40GiB -define registry:temporary-path=F:\\imageMagick Row_1.png Row_2.png -append Row_12.png"
Run Code Online (Sandbox Code Playgroud)
我知道如何在im4java中使用convert和-append,但是-define和-limit呢?这是我得到的:
IMOperation op = new IMOperation();
op.addImage("Row_1.png","Row_2.png");
op.appendVertically();
op.addImage("Row_12.png");
cmd.run(op);
Run Code Online (Sandbox Code Playgroud)
也许只是添加op.limit("memory 40GiB")
和op.define("registry:temporary-path=F:\\imageMagick")
?不知道是不是一样。。
我正在使用im4java版本 1.4.0 访问ImageMagick功能。它非常适合处理文件中的图像。
开发人员指南中有一节介绍使用缓冲图像而不是将输出写入文件,并且有一个测试 (TestCase13) 演示了使用缓冲图像作为输出。但是,当我使用缓冲图像运行任何操作时,我收到一条org.im4java.core.CommandException
说明:no ImageReader for given format
。
我尝试了许多不同的方法(包括添加jai_imageio.jar
以提供其他格式),但似乎没有任何效果。显示问题的基本测试代码(基于 im4java.jar 的 TestCase13)是:
@Test
public void shouldWorkWithBufferedImageTest() throws InterruptedException, IOException, IM4JavaException {
ProcessStarter.setGlobalSearchPath("C:\\Program Files\\ImageMagick-6.8.9-Q8");
String iImageDir = "C:\\images";
String var1 = "png";
IMOperation imOp = new IMOperation();
imOp.addImage(new String[]{iImageDir + "sample-image=6.png"});
imOp.blur(Double.valueOf(2.0D)).paint(Double.valueOf(10.0D));
imOp.addImage(new String[]{var1 + ":-"});
ConvertCmd convertCmd = new ConvertCmd();
Stream2BufferedImage stream2BufferedImage = new Stream2BufferedImage();
convertCmd.setOutputConsumer(stream2BufferedImage);
convertCmd.run(imOp, new Object[0]);
BufferedImage outImage = stream2BufferedImage.getImage();
ImageIO.write(outImage, "PNG", new …
Run Code Online (Sandbox Code Playgroud) 我正在安装一个依赖于Jmagick(和ImageMagick)的OSX 10.7(Lion)上的现有Java应用程序,我尝试安装jmagick.当我使用命令
./configure --with-java-home=/System/Library/Frameworks/JavaVM.framework/Versions/Current --with-magick-home=/usr/local/Cellar/imagemagick/6.8.0-10 --with-magick-inc-dir=/usr/local/Cellar/imagemagick/6.8.0-10/include/ImageMagick/
Run Code Online (Sandbox Code Playgroud)
我得到输出
checking build system type... i686-apple-darwin11.4.2
checking host system type... i686-apple-darwin11.4.2
checking target system type... i686-apple-darwin11.4.2
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc …
Run Code Online (Sandbox Code Playgroud) jmagick ×13
java ×11
imagemagick ×7
im4java ×2
image ×2
coldfusion ×1
color-space ×1
crop ×1
eclipse ×1
hidden-files ×1
icc ×1
imageicon ×1
jai ×1
python ×1
tomcat ×1