📄 publishtransaction.java
字号:
public void complete(Torrent torrent) {
try {
torrent.setDefaultEncoding();
debug("local torrent creation complete: " +torrent.getName()+ " : " +torrent.getMagnetURI() );
final String tData = new String( Base64.encode( torrent.writeToBEncodedData() ) );
JSONObject params = new JSONObject();
params.put("data", tData);
sendBrowserMessage("torrent", "done", params);
}
catch (Throwable t) {
// TODO: handle exception
debug("error encoding torrent", t);
}
}
public void failed(TorrentException cause) {
torrentCreationFailed(cause);
}
public void reportActivity(String activity) {
//debug("creation status : " + activity);
}
public void reportPercentageDone(int percent) {
//debug("creation progress : " + percent);
JSONObject params = new JSONObject();
params.put("percent", percent);
sendBrowserMessage("torrent", "progress", params);
}
};
creator.addListener(creatorListener);
creator.start();
} catch (MalformedURLException e) {
torrentCreationFailed(e);
} catch (TorrentException e) {
torrentCreationFailed(e);
}
JSONObject params = new JSONObject();
params.put("folder", dataFile.isDirectory());
params.put("name", dataFile.getName());
sendBrowserMessage("torrent", "chosen", params);
} else {
//No file was chosen, cancel the transaction
cancel();
stop();
}
}
private class ResizedImageInfo {
public URL url;
public int width,height;
public byte[] data;
public ResizedImageInfo(URL url,int width, int height, byte[] data) {
this.url = url;
this.width = width;
this.height = height;
this.data = data;
}
}
private ResizedImageInfo loadAndResizeImage(final File f,final int width, final int height, float quality) throws Exception {
ImageLoader loader = new ImageLoader();
final Display display = shell.getDisplay();
Image source = new Image(shell.getDisplay(),f.getAbsolutePath());
ImageResizer resizer = new ImageResizer(display,width,height,shell);
Image output = resizer.resize(source);
if(output == null) return null;
ImageData data = output.getImageData();
//Dispose the image
if(output != null && !output.isDisposed()) {
output.dispose();
}
File fDest = File.createTempFile("thumbnail",".jpg");
//debug("final FileOutputStream fos = new FileOutputStream(fDest);");
final FileOutputStream fos = new FileOutputStream(fDest);
//debug("final ByteArrayOutputStream baos = new ByteArrayOutputStream();");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
//debug("OutputStream os = new OutputStream() {...};");
OutputStream os = new OutputStream() {
public void write(int arg0) throws java.io.IOException {fos.write(arg0);baos.write(arg0);};
public void flush() throws java.io.IOException {fos.flush();baos.flush();};
public void write(byte[] arg0) throws java.io.IOException {fos.write(arg0);baos.write(arg0);};
public void write(byte[] arg0, int arg1, int arg2) throws java.io.IOException {fos.write(arg0);baos.write(arg0);};
};
loader.data = new ImageData[] {data};
try {
Class cla_JPEGFileFormat = Class.forName( "org.eclipse.swt.internal.image.JPEGFileFormat" );
Constructor jpeg_constructor = cla_JPEGFileFormat.getDeclaredConstructor(new Class[0]);
jpeg_constructor.setAccessible( true );
FileFormat format = (FileFormat)jpeg_constructor.newInstance(new Object[0]);
Field field = cla_JPEGFileFormat.getDeclaredField( "encoderQFactor" );
field.setAccessible( true );
field.setInt( format, (int)(quality*100));
Class cla_LEDataOutputStream = Class.forName( "org.eclipse.swt.internal.image.LEDataOutputStream" );
Constructor le_constructor = cla_LEDataOutputStream.getDeclaredConstructor(new Class[]{ OutputStream.class });
le_constructor.setAccessible( true );
Object le_stream = le_constructor.newInstance(new Object[]{ os });
Method unloadIntoStream = cla_JPEGFileFormat.getMethod( "unloadIntoStream", new Class[]{ ImageLoader.class, cla_LEDataOutputStream });
try {
unloadIntoStream.invoke( format, new Object[]{ loader, le_stream });
} catch(Exception ex) {
//Too bad for us here
//However we don't want to try the other way, as it may be an io exception, ie the stream is corrupted...
ex.printStackTrace();
}
}catch(Exception e) {
e.printStackTrace();
//The reflection way failed, do it the normal way with default (0.75) quality...
loader.save(os,SWT.IMAGE_JPEG);
}
os.flush();
URL url = hoster.hostFile(fDest);
ResizedImageInfo result = new ResizedImageInfo(url,width,height,baos.toByteArray());
os.close();
return result;
}
/*
private ResizedImageInfo loadAndResizeImage(File f,int thumbnail_size,float quality) throws Exception {
debug("BufferedImage src = ImageIO.read(f);");
BufferedImage src = ImageIO.read(f);
BufferedImage image;
int width = src.getWidth(),height = src.getHeight();
float wRatio = (float)width / (float)thumbnail_size;
float hRatio = (float)height / (float)thumbnail_size;
boolean mustResize = false;
if(wRatio >= hRatio && wRatio > 1) {
mustResize = true;
width = thumbnail_size;
height = (int) (src.getHeight() / wRatio);
}
if(hRatio > wRatio && hRatio > 1) {
mustResize = true;
width = (int) (src.getWidth() / hRatio);
height = thumbnail_size;
}
if(mustResize) {
debug("mustResize");
debug("Image img = src.getScaledInstance(width,height,Image.SCALE_FAST);");
Image img = src.getScaledInstance(width,height,Image.SCALE_FAST);
img.
debug("BufferedImage copy = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);");
BufferedImage copy = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
debug("Graphics2D g2 = copy.createGraphics();");
Graphics2D g2 = copy.createGraphics();
debug("g2.setColor(Color.white);");
g2.setColor(Color.white);
debug("g2.fillRect(0,0,width,height);");
g2.fillRect(0,0,width,height);
debug("g2.drawImage(img, 0, 0, null);");
g2.drawImage(img, 0, 0, new ImageObserver() {
public boolean imageUpdate(Image arg0, int arg1, int arg2, int arg3, int arg4, int arg5) {
debug("image update");
return true;
}
});
debug("g2.dispose();");
g2.dispose();
src = copy;
}
debug("File fDest = File.createTempFile(\"thumbnail\",\".jpg\");");
File fDest = File.createTempFile("thumbnail",".jpg");
debug("final FileOutputStream fos = new FileOutputStream(fDest);");
final FileOutputStream fos = new FileOutputStream(fDest);
debug("final ByteArrayOutputStream baos = new ByteArrayOutputStream();");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
debug("OutputStream os = new OutputStream() {...};");
OutputStream os = new OutputStream() {
public void write(int arg0) throws java.io.IOException {fos.write(arg0);baos.write(arg0);};
public void flush() throws java.io.IOException {fos.flush();baos.flush();};
public void write(byte[] arg0) throws java.io.IOException {fos.write(arg0);baos.write(arg0);};
public void write(byte[] arg0, int arg1, int arg2) throws java.io.IOException {fos.write(arg0);baos.write(arg0);};
};
ImageOutputStream output = null;
try {
//Get Writer and set compression
debug("Iterator iter = ImageIO.getImageWritersByFormatName(\"JPG\");");
Iterator iter = ImageIO.getImageWritersByFormatName("JPG");
if (iter.hasNext()) {
debug("ImageWriter writer = (ImageWriter)iter.next();");
ImageWriter writer = (ImageWriter)iter.next();
debug("ImageWriteParam iwp = writer.getDefaultWriteParam();");
ImageWriteParam iwp = writer.getDefaultWriteParam();
debug("ImageWriteParam iwp = writer.getDefaultWriteParam();");
debug("iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);");
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
debug("iwp.setCompressionQuality(quality);");
iwp.setCompressionQuality(quality);
debug("ImageOutputStream output = new MemoryCacheImageOutputStream(os);");
output = new MemoryCacheImageOutputStream(os);
debug("writer.setOutput(output);");
writer.setOutput(output);
debug("IIOImage imageOut = new IIOImage(src, null, null);");
IIOImage imageOut = new IIOImage(src, null, null);
debug("writer.write(null, imageOut, iwp);");
writer.write(null, imageOut, iwp);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
output.close();
}
URL url = hoster.hostFile(fDest);
ResizedImageInfo result = new ResizedImageInfo(url,width,height,baos.toByteArray());
return result;
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -