C# android中的图像压缩c和恢复

C# android中的图像压缩c和恢复,c#,android,image,compression,C#,Android,Image,Compression,我在sql server中存储一个c应用程序中的图像,并在android中显示它 我在android中遇到了内存问题,对sql的查询需要花费很多时间,因此,我想知道一种方法,将c语言中的图像压缩到100KB,然后以这种大小存储在sql中 -编辑 这是在android中显示图像时的代码: Bitmap bitmap=BitmapFactory.decodeByteArray(myLote.getFoto(), 0, myLote.getFoto().length); image

我在sql server中存储一个c应用程序中的图像,并在android中显示它

我在android中遇到了内存问题,对sql的查询需要花费很多时间,因此,我想知道一种方法,将c语言中的图像压缩到100KB,然后以这种大小存储在sql中

-编辑

这是在android中显示图像时的代码:

Bitmap bitmap=BitmapFactory.decodeByteArray(myLote.getFoto(), 0, myLote.getFoto().length);      
    imageFoto.setImageBitmap(bitmap);
imageFoto是ImageView,myLote.getFoto返回字节[]

08-06 18:03:41.300: E/AndroidRuntime(6462): FATAL EXCEPTION: main
08-06 18:03:41.300: E/AndroidRuntime(6462): java.lang.OutOfMemoryError
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:428)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:446)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at com.example.subasta.FragmentSubasta.onViewCreated(FragmentSubasta.java:109)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.os.Handler.handleCallback(Handler.java:725)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.os.Looper.loop(Looper.java:137)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at android.app.ActivityThread.main(ActivityThread.java:5041)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at java.lang.reflect.Method.invokeNative(Native Method)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at java.lang.reflect.Method.invoke(Method.java:511)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-06 18:03:41.300: E/AndroidRuntime(6462):     at dalvik.system.NativeStart.main(Native Method)
-重新编辑

我现在没有收到任何错误,但未显示任何内容::

BitmapFactory.Options options=new BitmapFactory.Options();
    options.inSampleSize = 2;
    Bitmap preview_bitmap = BitmapFactory.decodeByteArray(myLote.getFoto(), 0, myLote.getFoto().length, options);
    imageFoto.setImageBitmap(preview_bitmap);

谢谢大家。

使用较低的公用代码,在SQL中将图像保存为字节数组byte[]
然后,您可以在Android中将字节[]转换为位图。

您需要存储图像,还是可以将URI存储到其位置?如果我有错误,请更正我,但无法从我的电脑获取图像,将其加载到URL并显示在android设备上,对吗?将图像保存在文件夹中,并将URL保存到SQL中的图像位置。。在客户端中,您只需获取url位置并读取图像。在android中,要使用url获取图像,需要下载图像,因此需要同时下载。您使用此代码获取图像时出现了什么错误?我正在这样做,但是我需要在存储到sqlwell之前对其进行压缩。您有两个选择:减小图像大小或将图像格式更改为.PNG。例如,您想要哪一个?减小图像大小应该是解决方案,希望能有所帮助。它的C语言现在存储良好,但当我试图在android中显示它时,总是会出现错误。代码如下: