【发布时间】:2014-06-24 08:39:39
【问题描述】:
我搜索库、“.zip”-archiv 或其他简单的方法来获取所有“eclipse-icons”。我的意思是选项卡顶部的图标(错误、调试、搜索、任务等..)
有什么想法吗?
【问题讨论】:
-
图标位于拥有这些图标的 Eclipse 插件的各种 jar 中。
我搜索库、“.zip”-archiv 或其他简单的方法来获取所有“eclipse-icons”。我的意思是选项卡顶部的图标(错误、调试、搜索、任务等..)
有什么想法吗?
【问题讨论】:
您想找到它们所在的插件,还是下载类似的插件?试试http://eclipse-icons.i24.cc/
【讨论】:
试试这个工具:http://www.angusj.com/resourcehacker/
它允许您提取/更改 exe 文件中几乎任何图标/图片。
【讨论】:
我发现编写一个小程序来提取图像要容易得多。下面的代码从 Eclipse 插件目录中的 JAR 文件中提取所有 *.png。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collections;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class ExtractEclipseIcons {
public static void main(String[] args) {
String dir="C:\\eclipse\\e47dtp\\eclipse\\plugins";
for (File file : new File(dir).listFiles()) {
if(file.getName().endsWith(".jar")) {
unpackImagesFromJAR(file);
}
}
}
private static void unpackImagesFromJAR(File file) {
try (ZipFile zip = new ZipFile(file)){
for (ZipEntry ze : Collections.list(zip.entries())) {
String name = ze.getName();
if(name.endsWith(".png")) {
try(InputStream in = zip.getInputStream(ze)){
String outname = file.getName()+"/"+name;
File outfile = new File("data/"+outname.replace('/', '_').replace('\\', '_'));
stream2File(in,outfile);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void stream2File(InputStream is, File file) throws IOException {
byte[] buffer = new byte[8 * 1024];
try {
OutputStream output = new FileOutputStream(file);
try {
int bytesRead;
while ((bytesRead = is.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
} finally {
output.close();
}
} finally {
is.close();
}
}
}
【讨论】: