⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 screenshot.java

📁 Sony Ericsson手机上的Facebook客户端全套代码
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   Screenshot.java

package se.southend.drops.tools;

import java.io.OutputStream;
import java.io.PrintStream;
import javax.microedition.io.Connection;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class Screenshot
{

    public Screenshot()
    {
    }

    public static void create(int width, int height)
    {
        screenshot = Image.createImage(width, height);
    }

    public static void destroy()
    {
        screenshot = null;
    }

    public static Graphics getGraphics()
    {
        if(screenshot != null)
        {
            return screenshot.getGraphics();
        } else
        {
            System.out.println("Screenshot error: Screenshot not yet created.");
            return null;
        }
    }

    public static void saveBMP()
    {
        saveBMP(screenshot);
    }

    public static void saveBMP(Image img)
    {
        if(img == null)
        {
            System.out.println("Screenshot error: Screenshot target image not created.");
            return;
        }
        dataPtr = 0;
        int width = img.getWidth();
        int height = img.getHeight();
        int rgbData[] = new int[width * height];
        img.getRGB(rgbData, 0, width, 0, 0, width, height);
        imgData = new byte[54 + 3 * width * height];
        writeShort(19778, true);
        writeInt(imgData.length, true);
        writeInt(0, true);
        writeInt(54, true);
        writeInt(40, true);
        writeInt(width, true);
        writeInt(height, true);
        writeShort(1, true);
        writeShort(24, true);
        writeInt(0, true);
        writeInt(3 * width * height, true);
        writeInt(2834, true);
        writeInt(2834, true);
        writeInt(0, true);
        writeInt(0, true);
        for(int y = height - 1; y >= 0; y--)
        {
            int scanline = y * width;
            for(int x = 0; x < width; x++)
            {
                imgData[dataPtr++] = (byte)(rgbData[scanline + x] & 0xff);
                imgData[dataPtr++] = (byte)(rgbData[scanline + x] >> 8 & 0xff);
                imgData[dataPtr++] = (byte)(rgbData[scanline + x] >> 16 & 0xff);
            }

        }

        (new Thread() {

            public void run()
            {
                Screenshot.saveFile("file:///c:/pictures/image" + System.currentTimeMillis() + ".bmp", Screenshot.imgData);
            }

        }).start();
    }

    public static final void writeInt(int i)
    {
        writeInt(i, false);
    }

    public static final void writeInt(int i, boolean byteOrderReversed)
    {
        if(byteOrderReversed)
        {
            imgData[dataPtr++] = (byte)(i & 0xff);
            imgData[dataPtr++] = (byte)(i >>> 8 & 0xff);
            imgData[dataPtr++] = (byte)(i >>> 16 & 0xff);
            imgData[dataPtr++] = (byte)(i >>> 24 & 0xff);
        } else
        {
            imgData[dataPtr++] = (byte)(i >>> 24 & 0xff);
            imgData[dataPtr++] = (byte)(i >>> 16 & 0xff);
            imgData[dataPtr++] = (byte)(i >>> 8 & 0xff);
            imgData[dataPtr++] = (byte)(i & 0xff);
        }
    }

    public static final void writeShort(int s)
    {
        writeShort(s, false);
    }

    public static final void writeShort(int s, boolean byteOrderReversed)
    {
        if(byteOrderReversed)
        {
            imgData[dataPtr++] = (byte)(s & 0xff);
            imgData[dataPtr++] = (byte)(s >>> 8 & 0xff);
        } else
        {
            imgData[dataPtr++] = (byte)(s >>> 8 & 0xff);
            imgData[dataPtr++] = (byte)(s & 0xff);
        }
    }

    public static final void writeByte(int b)
    {
        imgData[dataPtr++] = (byte)(b & 0xff);
    }

    public static final void writeBytes(int b[])
    {
        for(int i = 0; i < b.length; i++)
            imgData[dataPtr + i] = (byte)b[i];

        dataPtr += b.length;
    }

    private static synchronized void saveFile(String fileURL, byte data[])
    {
        try
        {
            FileConnection file = (FileConnection)Connector.open(fileURL);
            if(file.exists())
                file.delete();
            file.create();
            OutputStream out = file.openOutputStream();
            out.write(data, 0, data.length);
            out.close();
            file.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    private static final String SAVE_PATH = "file:///c:/pictures/";
    private static byte imgData[];
    private static int dataPtr;
    private static Image screenshot;
    private static int index;


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -