标签: bitmap

从 UIElement 生成 BitmapSource

我正在尝试生成BitmapFrame基于UIElement. 这是我的功能:

private BitmapFrame RenderToBitmap2()
{
    RenderTargetBitmap renderBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);

    DrawingVisual drawingVisual = new DrawingVisual();
    DrawingContext drawingContext = drawingVisual.RenderOpen();
    VisualBrush aVisualBrush = new VisualBrush(GenerateTestStackPanel());
    drawingContext.DrawRectangle(aVisualBrush, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150)));

    drawingContext.Close();

    renderBitmap.Render(drawingVisual);

    return BitmapFrame.Create(renderBitmap);
}
Run Code Online (Sandbox Code Playgroud)

出于测试和调试目的,我使用了一个附加函数来创建一个简单的 StackFrame,它应该创建一个可以表示的有效视觉元素:

private StackPanel GenerateTestStackPanel()
{
    // Create a red Ellipse.
    Ellipse myEllipse = new Ellipse();

    myEllipse.Fill = Brushes.Green;
    myEllipse.StrokeThickness = 2;
    myEllipse.Stroke = Brushes.Black;

    // Set the width and height of …
Run Code Online (Sandbox Code Playgroud)

c# wpf drawing bitmap uielement

3
推荐指数
1
解决办法
7496
查看次数

杀死 Android 上的活动不会清除内存?

我有一个在 android 上运行的游戏。

基本上,它的结构就像lunarlander

我开始了我的活动,使用布局开始运行课程。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <my.darling.gameView
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/>

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

当我按下家时,我每次都可以回到我的比赛中。我总是关闭线程并创建一个新线程。

当我按下 BACK 按钮时出现问题。

我想我的比赛结束了。但是在“点击游戏”->“点击返回”4次之后

出现错误->“意外停止”

我已经覆盖了函数 :onPause()并调用了finish(). 但它仍然会发生。

谁能帮我?

memory android bitmap android-activity

3
推荐指数
1
解决办法
8124
查看次数

如何将自定义视图转换为位图?

我准备了一个自定义视图。我的视图包含我在 onDraw() 中使用 drawText 绘制的一个字母表。现在我需要将此视图更改为位图。

这里我的 OnDraw() 是,

public void onDraw(Canvas canvas) {

   drawText("A",100,200,mPaint); 
  }
Run Code Online (Sandbox Code Playgroud)

我需要将此视图转换为位图...请帮助我...提前致谢。

android bitmap

3
推荐指数
1
解决办法
4556
查看次数

绑定 Xaml 位图图像

我有位图图像变量,我想将它绑定到我的 xaml 窗口。

System.Reflection.Assembly thisExe;
        thisExe = System.Reflection.Assembly.GetExecutingAssembly();
        string[] resources = thisExe.GetManifestResourceNames();
        var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SplashDemo.Resources.Untitled-100000.png");
        Bitmap image = new Bitmap(stream);
Run Code Online (Sandbox Code Playgroud)

这是我的 xaml 代码

<Image Source="{Binding Source}" HorizontalAlignment="Left"  Height="210" Margin="35,10,0,0" VerticalAlignment="Top" Width="335">
    </Image>
Run Code Online (Sandbox Code Playgroud)

你能帮我通过 C# 代码将此位图变量绑定到这个 xaml 图像吗?

c# xaml bind bitmap

3
推荐指数
1
解决办法
2万
查看次数

android中的灰度位图

我有一个对应于“灰度位图”(一个字节-> 一个像素)的字节数组,我需要为此图像创建一个 PNG 文件。

下面的方法有效,但创建的 png 很大,因为我使用的位图是 ARGB_8888 位图,每个像素需要 4 个字节而不是 1 个字节。

我无法让它与 ARGB_8888 不同的其他 Bitmap.Config 一起工作。也许 ALPHA_8 是我需要的,但我一直无法让它工作。

我也尝试过其他一些帖子中包含的 toGrayScale 方法(在 Android 中将位图转换为灰度),但我对大小有同样的问题。

public static boolean createPNGFromGrayScaledBytes(ByteBuffer grayBytes, int width,
        int height,File pngFile) throws IOException{

    if (grayBytes.remaining()!=width*height){
        Logger.error(Tag, "Unexpected error: size mismatch [remaining:"+grayBytes.remaining()+"][width:"+width+"][height:"+height+"]", null);
        return false;
    }
    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    // for each byte, I set it in three color channels.
    int gray,color;
    int x=0,y=0;        
    while(grayBytes.remaining()>0){

        gray = grayBytes.get();
        // integer may be …
Run Code Online (Sandbox Code Playgroud)

android image bitmap image-processing grayscale

3
推荐指数
1
解决办法
5274
查看次数

在方法中创建弱引用

我有以下方法,它有一个 ImageSwitcher,用户可以左右滑动。所选图像显示在屏幕中央。我已经在低内存手机上对高分辨率图像进行了一些图像缩放,但是当从左到右快速滑动时,我仍然遇到 Bitmap OutOfMemoryEexception。我想改变这条线mSwitcher.setImageURI(myUri);(这是导致 OOME 的行)转换为使用弱引用,以便它可以自动进行垃圾收集。我怎样才能做到这一点?这是性能优化此方法的最佳方法吗?

谢谢

方法:

    public void onItemSelected(AdapterView parent, View v, int position, long id) {

    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES), "MyAppName");
    File[] cachedOnSDImages = mediaStorageDir.listFiles();
    countArray = new Integer[cachedOnSDImages.length];
    fileArray = new String[cachedOnSDImages.length];
    fileArray[position] = cachedOnSDImages[position].getAbsolutePath();
    Uri myUri = Uri.parse(fileArray[position]);
    mSwitcher.setImageURI(myUri); // weakly reference myUri in this line
    this.currentpos = position;
}
Run Code Online (Sandbox Code Playgroud)

我应该在这里添加 mSwitcher 实例化:

    private void makeSwitcher() {
    mSwitcher =  (ImageSwitcher) findViewById(R.id.switcher);
    mSwitcher.setFactory(this);
    mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
        android.R.anim.fade_in));
    mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
        android.R.anim.fade_out));
}
Run Code Online (Sandbox Code Playgroud)

java android weak-references bitmap out-of-memory

3
推荐指数
1
解决办法
4940
查看次数

如何对现有颜色进行位图透明度?

我正在使用 Win32。我在这里发现,如果您使用:

BitBlt(hdc, 0, 0, 32, 32, hdcMem, 0, 0, SRCAND); // hdc has mask in it
BitBlt(hdc, 0, 0, 32, 32, hdcMem, 0, 0, SRCPAINT);`// hdc has regular image in it
Run Code Online (Sandbox Code Playgroud)

您可以创建位图透明度。我的问题是,这依赖于 hdc 在目标位置上已经是空的事实。我的不是,所以代码擦除(使黑色)现有图像的一部分。如何将透明位图复制到已绘制内容的区域?

我尝试将掩码和图像发送到 1000, 1000 - hdc 中没有绘制任何内容,然后在 BitBlt() 中使用 SRCCOPY 将结果从 hdc 复制到 hdc。但是要么没有在 1000、1000 处提取,要么没有正确复制回来。

c++ winapi transparency bitmap

3
推荐指数
1
解决办法
6948
查看次数

使用 python matplotlib 仅将轴区域导出到位图

对于科学会议,论文的文件大小通常是有限的。我喜欢将我的绘图包含为 pdf,因此文本和线条保持清晰。但是,当我创建包含大量数据的假彩色图或散点图时,导出的 pdf 很容易变得比允许的整篇论文大。

有没有办法只将轴区域导出到位图,以便稍后将其包含在矢量轴中?(或者有没有更好的方法来获得一些嵌入为位图的元素的 pdf?)

我希望有人能在这里帮助我。由于这是我的第一篇文章,因此对如何改进我的问题的评论表示赞赏。

python pdf bitmap matplotlib

3
推荐指数
1
解决办法
1141
查看次数

你如何在android中将opengl纹理转换回位图?

我想将图像过滤器应用于我的图像并使用android HelloEffects 示例

它将图像数据从位图转换为纹理。
应用图像滤镜效果后,我想将图像恢复为 jpeg 格式,但不知道该怎么做。

android textures opengl-es bitmap

3
推荐指数
2
解决办法
7091
查看次数

将 CBitmap 保存到 .bmp 文件

我正在CBitmap使用CDC. 当我完成它时,我想将它保存到一个文件中。我已经看到有关该代码LINK的进程的一些信息:

CFile file;
if(file.Open(szFileName, CFile::modeCreate | CFile::modeWrite))
{ 
    file.Write(&bh, sizeof(BITMAPFILEHEADER));
    file.Write(&(bi.bmiHeader), sizeof(BITMAPINFOHEADER));
    file.Write(lpBitmapBits, 3 * nWidth * nHeight);
    file.Close();
}
Run Code Online (Sandbox Code Playgroud)

我的疑问是关于BITMAPFILEHEADERBITMAPINFOHEADER。我怎样才能用给定的CBitmapor填充它们CDC

mfc bitmap cdc cbitmap

3
推荐指数
1
解决办法
3335
查看次数