Java 如何在打印屏幕中裁剪图像?

Java 如何在打印屏幕中裁剪图像?,java,android,kotlin,mobile,Java,Android,Kotlin,Mobile,我正在开发一个应用程序,它选择一个伤口的图像并将其显示在应用程序屏幕上。这样,用户就可以标记伤口的感兴趣区域,以便以后算法能够识别和处理感兴趣区域。我使用lib实现'com.github.gcacace:signature pad:1.2.1'来划分区域,然后保存屏幕的“printscreen”,这样我就可以将标记与伤口图像一起保存。 我多么希望这张照片看起来像 出口: 但是,我想根据伤口的图像剪切打印屏幕,以发送到服务器处理图像。有人能帮我在做标记后剪下伤口的图像吗 private

我正在开发一个应用程序,它选择一个伤口的图像并将其显示在应用程序屏幕上。这样,用户就可以标记伤口的感兴趣区域,以便以后算法能够识别和处理感兴趣区域。我使用lib实现'com.github.gcacace:signature pad:1.2.1'来划分区域,然后保存屏幕的“printscreen”,这样我就可以将标记与伤口图像一起保存。 我多么希望这张照片看起来像

出口:

但是,我想根据伤口的图像剪切打印屏幕,以发送到服务器处理图像。有人能帮我在做标记后剪下伤口的图像吗

    private fun saveImage(myBitmap: Bitmap?): String? {

    try {
        // image naming and path  to include sd card  appending name you choose for file
        val mPath = Environment.getExternalStorageDirectory().toString() + "/imagesignature.jpg"

        // create bitmap screen capture
        val v1 = window.decorView.rootView
        v1.isDrawingCacheEnabled = true
        val bitmap = Bitmap.createBitmap(v1.drawingCache)
        v1.isDrawingCacheEnabled = false

        val imageFile = File(mPath)

        val outputStream = FileOutputStream(imageFile)
        val quality = 100
        bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream)
        outputStream.flush()
        outputStream.close()

        //setting screenshot in imageview
        val filePath = imageFile.path

        val ssbitmap = BitmapFactory.decodeFile(imageFile.absolutePath)

        imagem.setImageBitmap(ssbitmap)

    } catch (e: Throwable) {
        // Several error may come out with file handling or DOM
        e.printStackTrace()
    }
    return ""
}

我仍然是一名学习者,因此为了方便裁剪图像,我建议使用此库:


在这里,您可以根据需要裁剪图像,并将图像存储在服务器上

据我所知,我认为不可能裁剪图像。为了进行裁剪,您需要找到所需零件的尺寸。据我所知,我认为你不能告诉程序你想要的东西的尺寸,然后裁剪掉所有其他东西。也许可以打印图像,但我认为Java无法裁剪。其他编码程序可能更适合于此。

如果您有要保存的矩形的坐标:

Bitmap croppedBmp = Bitmap.createBitmap(originalBmp, rectanglePositionX, rectanglePositionY, rectangleWidth, rectangleHeight);
或者您可以尝试:
BitmapFactory.decodeStream(InputStream是,Rect outPadding,Options opts)
BitmapFactory.decodeFileDescriptor(FileDescriptor fd,Rect OUTPADING,Options opts)


在矩形输出中,您将设置要保存的矩形的坐标。

但我希望通过代码隐式地自动完成,而不是由进行此剪切的用户完成。用户只需选择图像并划分区域并将其发送到服务器,其余部分由应用程序完成。以此为基础。如果您想进一步将图像裁剪成用户定义的特定形状,您需要自己编写代码,并将其与Android图像裁剪器(cropeShape)合并。我找不到任何开源软件可以为您实现这一点。我知道snapchat有一个叫做剪刀的功能。你需要一个小版本的截图吗?这是你的问题吗?你可以帮我