GVKun编程网logo

在WPF中使用Image控件显示System.Drawing.Bitmap(wpf使用image控件显示图片)

19

关于在WPF中使用Image控件显示System.Drawing.Bitmap和wpf使用image控件显示图片的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.net–WPF中的Bitm

关于在WPF中使用Image控件显示System.Drawing.Bitmapwpf使用image控件显示图片的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.net – WPF中的BitmapImage会锁定文件、.net – 如何在WPF中使用DrawThemeTextEx、Android ImageView setImageBitmap 不显示图片、android – 删除Glide设置的图像并使用imageView.setImageBitmap()等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

在WPF中使用Image控件显示System.Drawing.Bitmap(wpf使用image控件显示图片)

在WPF中使用Image控件显示System.Drawing.Bitmap(wpf使用image控件显示图片)

如何在WPF 中将内存Bitmap对象分配给Image控件?

答案1

小编典典

您可以使用图像的Source属性。试试这个代码…

ImageSource imageSource = new BitmapImage(new Uri("C:\\FileName.gif"));image1.Source = imageSource;

.net – WPF中的BitmapImage会锁定文件

.net – WPF中的BitmapImage会锁定文件

我用:
Dim bmi As New BitmapImage(New Uri(fiInfo.FullName,UriKind.Absolute))
bmi.CacheOption = BitmapCacheOption.OnLoad

这不是Use OnLoad
并且文件仍被锁定以覆盖硬盘.任何想法如何解锁?

问候

如您所链接的问题所示,您需要调用BeginInit和EndInit,以便设置UriSource属性:
Dim bmi As New BitmapImage()
bmi.BeginInit()
bmi.CacheOption = BitmapCacheOption.OnLoad
bmi.UriSource = New Uri(fiInfo.FullName,UriKind.Absolute)
bmi.EndInit()

.net – 如何在WPF中使用DrawThemeTextEx

.net – 如何在WPF中使用DrawThemeTextEx

我正在开发一个在Aero Glass上显示文本的应用程序.为了使它可读,我使用了一个OuterGlowBitmapEffect,但是,如同 here所述,这在.NET 4中不再可能,并且DropShadowEffect也不适用于Glass.

在搜索解决方案时,我遇到了DWMApi中的原生DrawThemeTextEx,但我找到的所有示例都是针对WinForms而不是针对WPF.

那么如何在WPF中使用它呢?

谢谢

解决方法

我也尝试使用DrawThemeTextEx但是我找不到任何使用它的样本以及正确的系统字体.

.NET 4中的以下效果接近Aero玻璃文本并替换了BitmapEffects.

<Decorator>
       <Decorator.Effect>
           <DropShadowEffect BlurRadius="10" Color="White" ShadowDepth="0" />
       </Decorator.Effect>
   </Decorator>

Android ImageView setImageBitmap 不显示图片

Android ImageView setImageBitmap 不显示图片

从sd卡里读出图片后有时调用setImageBitmap(bitmap)方法会显示不出图片,仔细考虑过后原来是加载的图片过大导致的,解决办法为:

BitmapFactory.Options op = new BitmapFactory.Options();

op.inSampleSize = 2;

//op.inJustDecodeBounds = true; //它仅仅会把它的宽,高取回来给你,这样就不会占用太多的内存,也就不会那么频繁的发生OOM了。            

//op.inPreferredConfig = Bitmap.Config.ARGB_4444;    // 默认是Bitmap.Config.ARGB_8888



private Bitmap createBitmapFromByteData(byte[] data ,Options options){
        
        Bitmap bitmap = null;
        if(options == null){
            bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
        }else{
            bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
        }
        return bitmap;
}

这样返回的bitmap就可以被显示出来了。

android – 删除Glide设置的图像并使用imageView.setImageBitmap()

android – 删除Glide设置的图像并使用imageView.setImageBitmap()

我有一个片段,首先使用Glide将图像设置为imageView(从互联网上获取图像网址).然后在点击图像视图时,可以从图库或相机意图中选择新图像.问题是当我尝试设置从OnActivityResult()获得的位图时.图像实际上设置但滑动重叠.我需要显示从相机/画廊捕获的图像.任何帮助表示赞赏,如果可以使用毕加索或任何其他图书馆完成,请提出建议.
  以下是我到目前为止所尝试的内容

onActivityResult()

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data)
{
    super.onActivityResult(requestCode,resultCode,data);

    if (resultCode == Activity.RESULT_OK)
    {
        if (requestCode == SELECT_FILE)
            onSelectFromgalleryResult(data);
        else if (requestCode == REQUEST_CAMERA)
            //   onCaptureImageResult((Bitmap) data.getExtras().get("data"));
            onCaptureImageResult(data);
    }
}

private void onCaptureImageResult(Intent data)
{
    if (data != null)
    {
        mImageUri = Uri.parse("file://" + data.getStringExtra(CameraConfiguration.Arguments.FILE_PATH));
    }

    try
    {
        bitmap_image = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(),mImageUri);
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        bitmap_image.compress(Bitmap.CompressFormat.JPEG,60,bytes);

        bitmap_image = Bitmap.createScaledBitmap(bitmap_image,(int) (bitmap_image.getWidth() * 0.5),(int) (bitmap_image.getHeight() * 0.5),true);

        ExifInterface ei = new ExifInterface(data.getStringExtra(CameraConfiguration.Arguments.FILE_PATH));
        int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_UNDEFINED);

        switch (orientation)
        {
            case ExifInterface.ORIENTATION_ROTATE_90:
                bitmap_image = (SnappyUtils.rotateImage(bitmap_image,90));
                break;

            case ExifInterface.ORIENTATION_ROTATE_180:
                bitmap_image = (SnappyUtils.rotateImage(bitmap_image,180));
                break;

            case ExifInterface.ORIENTATION_ROTATE_270:
                bitmap_image = (SnappyUtils.rotateImage(bitmap_image,270));
                break;

            case ExifInterface.ORIENTATION_norMAL:

            default:
                break;
        }
    }
    catch (IOException e)
    {
        e.printstacktrace();
        Log.d("exception",e.toString());
    }
    ////////////////////// it is showing on iv_logo2 as expected as it does not has anything set by glide//////////////////////////////////////////////////////////////////
    iv_logo.setBackground(null);
    iv_logo.setimageBitmap(bitmap_image);
    iv_logo2.setimageBitmap(bitmap_image);

    ///////////////////////////tried added this by seeing other SO posts //////////////////////////////////////////////////////////////////
    Glide.with(mContext)
            .load(mImageUri)
            .signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
            .diskCacheStrategy(diskCacheStrategy.NONE)
            .skipMemoryCache(true)
            .into(iv_logo);
}

另请注意,这与删除Glide的缓存不同

解决方法

花了很多时间搞清楚如何删除Glide设置的图像并失败后,决定去老派并首先在手机中下载图像并在我的应用程序中将该图像设置为位图

asynchtask下载图片

private class Getimages extends AsyncTask<Object,Object,Object>
{
    private String requestUrl,imagename_;
    private ImageView view;
    private Bitmap bitmap;
    private FileOutputStream fos;

    private Getimages(String requestUrl,ImageView view,String _imagename_)
    {
        this.requestUrl = requestUrl;
        this.view = view;
        this.imagename_ = _imagename_;
    }

    @Override
    protected Object doInBackground(Object... objects)
    {
        try
        {
            URL url = new URL(requestUrl);
            URLConnection conn = url.openConnection();
            bitmap = BitmapFactory.decodeStream(conn.getInputStream());
        }
        catch (Exception ex)
        {
            ex.printstacktrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Object o)
    {
        view.setimageBitmap(bitmap);
    }
}

今天关于在WPF中使用Image控件显示System.Drawing.Bitmapwpf使用image控件显示图片的分享就到这里,希望大家有所收获,若想了解更多关于.net – WPF中的BitmapImage会锁定文件、.net – 如何在WPF中使用DrawThemeTextEx、Android ImageView setImageBitmap 不显示图片、android – 删除Glide设置的图像并使用imageView.setImageBitmap()等相关知识,可以在本站进行查询。

本文标签: