我在using块中使用了以下代码块和更多代码:
using (System.Drawing.Bitmap tempImg =
(System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap))
{
// ...
tempImg.Save("..\\..\\testdata\\tempImg.bmp", ImageFormat.Bmp);
// ...
}
Run Code Online (Sandbox Code Playgroud)
但我仍然得到错误:
GDI +发生了一般错误
只有在我做了一些与使用块内的代码无关的动作之后.在其他时候,这很好.tempImg.bmp也是一个临时文件,因此我删除了using块本身中的tempImg.bmp.
由于tempImg在使用中并且它被处理掉了,我认为应该解决锁定问题.
有人可以让我知道这段代码中的错误是什么?
编辑:
System.Drawing.Image要System.Drawing.Bitmap为一体的类型tempImg.
编辑: 我发现只有在创建了SaveFileDialog并且用户点击"保存"后才会出现此错误.
其实我知道如何打开PNG文件作为位图.但我的代码不适用于打开的JPG文件,我不知道为什么.
我无法在SO或谷歌上找到关于如何执行此操作的正确示例.
我需要有一个位图,其中包含从SD卡的目录打开的JPG文件.例如"sdcard/images/01.jpg"
谢谢
我正在构建一个创建许多位图的C#应用程序(System.Drawing.Image).将调试器中显示的位图作为图片,将会有很大的帮助.调试器对XML文件具有本机支持.有没有办法看到图片?
在我的应用程序中,当我尝试启动它时强制关闭并且错误指向行"setContentView(R.layout.Menu);" 的布局.在XML文件中,它在我的布局中显示"OutOfMemoryError"图像视图.我真的很困惑.请指导我进一步的行动.
编辑:
我的应用程序使用数据库,并在第一次解析一些XML数据并插入到Sqlite数据库中.我的Outofmemory问题只在第一次出现.第二次它工作正常.我试过System.gc().对此有任何疑问吗?
这是我的日志:
E/dalvikvm-heap(2712): 105376-byte external allocation too large for this process.
VM won't let us allocate 105376 bytes
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Test/com.Test.Menu}: android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:518) …Run Code Online (Sandbox Code Playgroud) 我想ImageView用in 重复图像RelativeLayout.它可以是可以使用位图xml和使用TILEMODE "repeat"用RelativeLayout,因为我已经看到了在互联网上都处理事情LinearLayout.
任何帮助或提示将受到热烈欢迎.
我正在尝试使用ImageViewTouch,这是一个可以进行缩放缩放的库.我可以使用Canvas绘制图像,但是当我缩放图像时,绘图会消失.
为此,我正在尝试将视图转换为位图并为同一视图设置ImageBitmap.这是代码:
mImage.setDrawPath(true);
mImage.setImageBitmap(loadBitmapFromView(mImage));
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getWidth(), v.getHeight());
v.draw(c);
return b;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到以下日志错误:
07-11 21:13:41.567: E/AndroidRuntime(20056): java.lang.IllegalArgumentException: width and height must be > 0
07-11 21:13:41.567: E/AndroidRuntime(20056): at android.graphics.Bitmap.createBitmap(Bitmap.java:638)
07-11 21:13:41.567: E/AndroidRuntime(20056): at android.graphics.Bitmap.createBitmap(Bitmap.java:620)
Run Code Online (Sandbox Code Playgroud)
如果我删除了loadBitmapFromView呼叫,则图形通常会出现在图像上方.当我尝试与图像进行任何交互(如放大或缩小)时,绘图消失,仅保留背景图像,即图片.
---编辑---
这是在loadBitmapFromView通话后放置的更多代码.案例是:我有一个无线电组听众,当我检查一些单选按钮时,我必须加载图像并在其上绘制一些可能的图纸..然后我试图将所有内容(图像和图纸)转换为仅一个位图.
这是代码的一部分:
bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)
之后,我绘制了我必须绘制的所有内容,并尝试使用我展示的loadImageBitmap方法将视图转换为位图.
decodeSampledBitmapFromResource我从Android开发人员的这个链接获得的方法http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
在我的Android应用程序中,我有一个位图(比如说b)和一个按钮.现在当我点击按钮时,我想分享位图.我在我的内部使用下面的代码onClick()来实现这个目的: -
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM, b);
startActivity(Intent.createChooser(intent , "Share"));
Run Code Online (Sandbox Code Playgroud)
我期待一个能够处理这个意图的所有应用程序列表,但我什么都没得到.没有应用程序列表也没有android studio中的任何错误.我的应用程序暂停了一段时间然后退出.
我检查了位图,它很好(它不是空的).
我哪里出错了?
我应该分配内存还是只分配内存流的对象:这样可以吗?
MemoryStream memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)
如果我需要定义MemoryStream大小,我如何从Bitmap获取它?
我想使用OpenCV来处理我的桌面,就好像它是一个视频流.
我熟悉OpenCV.
我不熟悉Windows API.我意识到还有其他方法来捕获屏幕,但出于我的问题的目的,我需要使用OpenCV来完成它.
这是我的(超级天真)代码:
HWND hDesktopWnd;
HDC hDesktopDC;
hDesktopWnd=GetDesktopWindow();
hDesktopDC=GetDC(hDesktopWnd);
// get the height and width of the screen
int height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
int width = GetSystemMetrics(SM_CXVIRTUALSCREEN);
// create a bitmap
HBITMAP hbDesktop = CreateCompatibleBitmap( hDesktopDC, width, height);
Mat src(height,width,CV_8UC4);
src.data = (uchar*)hbDesktop;
imshow("output",src); //fails :(
Run Code Online (Sandbox Code Playgroud)
StackOverflow也有类似的问题,但它们要么是旧式OpenCV,要么是Android操作系统.
我在Windows 7 64x
Opencv 2.4.3上
谢谢任何能回答这个问题的人.
我有一个ListView,其中ImageView的图像在ImageView从服务器获取后动态加载.现在,我希望这些任意大小的图像都适合圆形框架,怎么做?这是我想要的示例图片
