菜鸟教程小白 发表于 2022-12-11 20:36:00

android - 如何将捕获的图像保存到画廊代号一?


                                            <p><p>我一直在研究一种解决方案,该解决方案涉及从代号一个应用程序捕获图像并将其存储在图库中,但根据我看到的图像是临时文件的文档,我需要一个代码将该文件复制到画廊,所以我可以随时得到它我想要的</p>

<p>到目前为止的代码:</p>

<pre><code>String imageName = &#34;Hello.png&#34;;
    String filePath = Capture.capturePhoto();
    if(filePath != null) {
      try {
            Util.copy(FileSystemStorage.getInstance().openInputStream(filePath), Storage.getInstance().createOutputStream(imageName));
      } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
      }
    }
</code></pre>

<p>我需要注入(inject)替换 <code>Storage.getInstance().createOutputStream(imageName)</code></p> 的代码

<p>画廊的完整路径</p>

<p>我发现有一个名为 CameraKit 的原生库:</p>

<p> <a href="/image/rVY5A.png" rel="noreferrer noopener nofollow"><img src="/image/rVY5A.png" alt="Exception when trying the camera kit"/></a> </p>

<p>我在 iOS 上尝试了演示 [在 iPhone 7 上尝试过],当按下捕获图像时导致以下异常</p>

<pre><code>=================================================================
Main Thread Checker: UI API called on a background thread: -
PID: 370, TID: 26983, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4   MyApplication                     0x00000001049f829c Java_com_codename1_impl_ios_IOSImplementation_getDisplayWidthImpl + 80
5   MyApplication                     0x0000000104bf379c com_codename1_impl_ios_IOSNative_getDisplayWidth__ + 76
6   MyApplication                     0x0000000104c05478 com_codename1_impl_ios_IOSNative_getDisplayWidth___R_int + 32
7   MyApplication                     0x0000000104a0f4cc com_codename1_impl_ios_IOSImplementation_getDisplayWidth___R_int + 268
8   MyApplication                     0x0000000104a1a1e4 virtual_com_codename1_impl_ios_IOSImplementation_getDisplayWidth___R_int + 96
9   MyApplication                     0x0000000104a3d6a0 com_codename1_impl_ios_IOSImplementation_convertToPixels___int_boolean_R_int + 408
10MyApplication                     0x00000001049ae150 virtual_com_codename1_impl_CodenameOneImplementation_convertToPixels___int_boolean_R_int + 112
11MyApplication                     0x0000000104608b2c com_codename1_ui_Display_convertToPixels___float_R_int + 308
12MyApplication                     0x000000010466c09c com_codename1_ui_plaf_UIManager_resetThemeProps___java_util_Hashtable + 2620
13MyApplication                     0x000000010466b618 com_codename1_ui_plaf_UIManager___INIT____ + 2476
14MyApplication                     0x000000010467e090 com_codename1_ui_plaf_UIManager_getInstance___R_com_codename1_ui_plaf_UIManager + 416
15MyApplication                     0x00000001045f013c com_codename1_ui_Display_mainEDTLoop__ + 1016
16MyApplication                     0x00000001049d0e00 com_codename1_ui_RunnableWrapper_run__ + 7124
17MyApplication                     0x00000001048e7fb4 virtual_java_lang_Runnable_run__ + 160
18MyApplication                     0x0000000104875478 com_codename1_impl_CodenameOneThread_run__ + 548
19MyApplication                     0x00000001048e7fb4 virtual_java_lang_Runnable_run__ + 160
20MyApplication                     0x0000000104809a70 java_lang_Thread_runImpl___long + 1056
21MyApplication                     0x00000001047b3c04 threadRunner + 80
22libsystem_pthread.dylib             0x00000001823f1220 &lt;redacted&gt; + 272
23libsystem_pthread.dylib             0x00000001823f1110 &lt;redacted&gt; + 0
24libsystem_pthread.dylib             0x00000001823efb10 thread_start + 4
2018-09-17 11:39:50.457427+0300 MyApplication Main Thread Checker: UI API called on a background thread: -
PID: 370, TID: 26983, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4   MyApplication                     0x00000001049f829c Java_com_codename1_impl_ios_IOSImplementation_getDisplayWidthImpl + 80
5   MyApplication                     0x0000000104bf379c com_codename1_impl_ios_IOSNative_getDisplayWidth__ + 76
6   MyApplication                     0x0000000104c05478 com_codename1_impl_ios_IOSNative_getDisplayWidth___R_int + 32
7   MyApplication                     0x0000000104a0f4cc com_codename1_impl_ios_IOSImplementation_getDisplayWidth___R_int + 268
8   MyApplication                     0x0000000104a1a1e4 virtual_com_codename1_impl_ios_IOSImplementation_getDisplayWidth___R_int + 96
9   MyApplication                     0x0000000104a3d6a0 com_codename1_impl_ios_IOSImplementation_convertToPixels___int_boolean_R_int + 408
10MyApplication                     0x00000001049ae150 virtual_com_codename1_impl_CodenameOneImplementation_convertToPixels___int_boolean_R_int + 112
11MyApplication                     0x0000000104608b2c com_codename1_ui_Display_convertToPixels___float_R_int + 308
12MyApplication                     0x000000010466c09c com_codename1_ui_plaf_UIManager_resetThemeProps___java_util_Hashtable + 2620
13MyApplication                     0x000000010466b618 com_codename1_ui_plaf_UIManager___INIT____ + 2476
14MyApplication                     0x000000010467e090 com_codename1_ui_plaf_UIManager_getInstance___R_com_codename1_ui_plaf_UIManager + 416
15MyApplication                     0x00000001045f013c com_codename1_ui_Display_mainEDTLoop__ + 1016
16MyApplication                     0x00000001049d0e00 com_codename1_ui_RunnableWrapper_run__ + 7124
17MyApplication                     0x00000001048e7fb4 virtual_java_lang_Runnable_run__ + 160
18MyApplication                     0x0000000104875478 com_codename1_impl_CodenameOneThread_run__ + 548
19MyApplication                     0x00000001048e7fb4 virtual_java_lang_Runnable_run__ + 160
20MyApplication                     0x0000000104809a70 java_lang_Thread_runImpl___long + 1056
21MyApplication                     0x00000001047b3c04 threadRunner + 80
22libsystem_pthread.dylib             0x00000001823f1220 &lt;redacted&gt; + 272
23libsystem_pthread.dylib             0x00000001823f1110 &lt;redacted&gt; + 0
24libsystem_pthread.dylib             0x00000001823efb10 thread_start + 4
2018-09-17 11:39:52.007930+0300 MyApplication System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-09-17 11:39:52.009349+0300 MyApplication Reading from public effective user settings.
2018-09-17 11:39:52.788626+0300 MyApplication Failed to create directory /var/mobile/Containers/Data/Application/02F1D9AF-FE59-4B2B-9DC8-857338A52F07/Documents/cn1storage/
2018-09-17 11:39:52.832746+0300 MyApplication CGContextSetAllowsAntialiasing: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2018-09-17 11:39:52.883682+0300 MyApplication CGContextSetAllowsAntialiasing: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2018-09-17 11:39:56.810978+0300 MyApplication *** Terminating app due to uncaught exception &#39;NSGenericException&#39;, reason: &#39;*** - No active and enabled video connection&#39;
*** First throw call stack:
(0x1827cad8c 0x1819845ec 0x188369924 0x104ded220 0x105da51dc 0x105da519c 0x105da9d2c 0x182773070 0x182770bc8 0x182690da8 0x184676020 0x18c6b0758 0x104bf3728 0x104a0ebd4 0x1049ae238 0x1045e6a8c 0x104e01230 0x104e0129c 0x182121fc0)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
</code></pre>

<p>问候,</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这会将图像复制到您的本地存储中。您也可以将其复制到本地文件系统主目录,但不能将其复制到设备库中。 </p>

<p>为此,您需要一个明确的 API 将图像文件存储在那里。一些相机和操作系统实现将图像存储在图库中,而另一些则不存储。不幸的是,这不是一般容易控制的东西。</p></p>
                                   
                                                <p style="font-size: 20px;">关于android - 如何将捕获的图像保存到画廊代号一?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/52354291/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/52354291/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: android - 如何将捕获的图像保存到画廊代号一?