/// <summary> /// Given a difference buffer and an array of failed points, this method uses VScan utility to go through /// the failed points and determine how many of them can be ignored. /// </summary> /// <param name="diffBuffer">The difference buffer.</param> /// <param name="failedPoints">The array of failed points.</param> /// <returns>Number of pixels that CANNOT be ignored. Pass == 0.</returns> private static int VerifyDifferenceUsingVScan(RenderBuffer diffBuffer, string VScanToleranceFile) { int failures = 0; ImageComparator comparator; if (VScanToleranceFile != null && File.Exists(VScanToleranceFile)) // using custom tolerance { CurveTolerance tolerance = new CurveTolerance(); tolerance.LoadTolerance(VScanToleranceFile); comparator = new ImageComparator(tolerance); } else // using default tolerance; { comparator = new ImageComparator(); } ImageAdapter blackImageAdapter = new ImageAdapter(diffBuffer.Width, diffBuffer.Height, ColorToIColor(Colors.Black)); ImageAdapter diffImageAdapter = new ImageAdapter(diffBuffer.Width, diffBuffer.Height); for (int x = 0; x < diffBuffer.Width; x++) { for (int y = 0; y < diffBuffer.Height; y++) { diffImageAdapter[x, y] = ColorToIColor(diffBuffer.FrameBuffer[x, y]); } } bool passed = comparator.Compare(blackImageAdapter, diffImageAdapter, true); failures = (passed == false && comparator.MismatchingPoints != null) ? comparator.MismatchingPoints.NumMismatchesAboveLevel(1) : 0; return(failures); }
/// <summary> /// internal render /// </summary> internal override IImageAdapter _Render() { if (_resourceKey == null) { throw new RenderingVerificationException("ResourceKey not set (currently null)"); } Stream stream = null; try { stream = EmbeddedResourceProvider.Current.GetResource(_resourceKey).GetStream(); // Dispose (called when block exit) will close the underlying stream using (Bitmap bitmap = (Bitmap)Bitmap.FromStream(stream)) { GeneratedImage = new ImageAdapter(bitmap); Size = new Size(GeneratedImage.Width, GeneratedImage.Height); return(GeneratedImage); } } finally { // Should be useless (except if error occurs if Bitmap.FromStream) since // disposing the bitmap (done automatically when using block exit) will close the underlying stream if (stream != null) { stream.Close(); stream = null; } } }
/// <summary> /// Filter Implementation /// </summary> protected override IImageAdapter ProcessFilter(IImageAdapter source) { if (source == null) { throw new ArgumentNullException("source", "The IImageAdapter cannot be null"); } if (source.Width == 0 || source.Height == 0) { throw new ArgumentException("The IImageAdapter is invalid (width and/or height is zero)"); } int width = source.Width; int height = source.Height; IColor lcol = null; ImageAdapter retVal = new ImageAdapter(width, height); for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { lcol = (IColor)source[i, j].Clone(); // Do not try to convert an empty color if (lcol.IsEmpty == false) { double gval = lcol.Red * RED + lcol.Green * GREEN + lcol.Blue * BLUE; lcol.Red = gval; lcol.Green = gval; lcol.Blue = gval; } retVal[i, j] = lcol; } } return(retVal); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); var adapter = new ImageAdapter(this, _viewModel); var recyclerView = FindViewById <RecyclerView>(Resource.Id.ImageRecyclerView) ?? throw new NullReferenceException($"Could Not Find {nameof(Resource.Id.ImageRecyclerView)}"); recyclerView.SetAdapter(adapter); var layoutManager = new GridLayoutManager(this, 2); recyclerView.SetLayoutManager(layoutManager); _progressBar = FindViewById <ProgressBar>(Resource.Id.ProgressBar) ?? throw new NullReferenceException($"Could not find {nameof(Resource.Id.ProgressBar)}"); _progressBar.Visibility = ViewStates.Gone; _editText = FindViewById <EditText>(Resource.Id.SearchEditText); var goButton = FindViewById <Button>(Resource.Id.GoButton) ?? throw new NullReferenceException($"Could Not Find {nameof(Resource.Id.GoButton)}"); goButton.Click += HandleButtonClicked; SupportActionBar.SetDisplayHomeAsUpEnabled(false); SupportActionBar.SetHomeButtonEnabled(false); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); var intent = new ImageGalleryIntent(Intent); var imageIdList = intent.ImageIds; var title = intent.Title; var tree = TreeManager <Slug> .GetTree(); var imageList = new List <Image>(); foreach (var id in imageIdList) { var image = tree.Images.Find(i => i.XmlId == id); imageList.Add(image); } // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_imagegallery); var mToolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar); SetSupportActionBar(mToolbar); mToolbar.SetNavigationIcon(Resource.Drawable.ic_arrow_back_white_24dp); SupportActionBar.SetHomeButtonEnabled(true); SupportActionBar.Title = title; var viewPager = FindViewById <ViewPager>(Resource.Id.viewPager); ImageAdapter adapter = new ImageAdapter(this, imageList); viewPager.Adapter = adapter; }
/// <summary> /// Filter Implementation /// </summary> protected override IImageAdapter ProcessFilter(IImageAdapter source) { if (source == null) { throw new ArgumentNullException("source", "The value passed in cannot be null"); } int width = source.Width; int height = source.Height; rgbPixels = new float[3, source.Width, source.Height]; for (int j = 0; j < source.Height; j++) { for (int i = 0; i < source.Width; i++) { rgbPixels[0, i, j] = (float)source[i, j].Red; rgbPixels[1, i, j] = (float)source[i, j].Green; rgbPixels[2, i, j] = (float)source[i, j].Blue; } } IImageAdapter retVal = new ImageAdapter(source); Process(Level, true); Normalize(retVal); retVal = Interp(retVal); return(retVal); }
/// <summary> /// 设置数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTest_Click(object sender, EventArgs e) { ImageAdapter adapter = new ImageAdapter(GetImageList()); recycleView1.SetAdapter(adapter); recycleView1.NotifyDataSetChanged(); }
/// <summary> /// Filter Implementation /// </summary> protected override IImageAdapter ProcessFilter(IImageAdapter source) { ImageAdapter iret = null; iret = new ImageAdapter(source.Width, source.Height); // Compute the curve for all channels (except Alpha which remains constant) byte[] redLUT = CreateLUT(RedGamma); byte[] greenLUT = CreateLUT(GreenGamma); byte[] blueLUT = CreateLUT(BlueGamma); IColor color = null; for (int y = 0; y < iret.Height; y++) { for (int x = 0; x < iret.Width; x++) { color = (IColor)source[x, y].Clone(); color.RGB = 0; // Keep alpha value color.R = redLUT[source[x, y].R]; color.G = greenLUT[source[x, y].G]; color.B = blueLUT[source[x, y].B]; iret[x, y] = color; } } return(iret); }
/// <summary> /// Filter Implementation /// </summary> protected override IImageAdapter ProcessFilter(IImageAdapter source) { if (source == null) { throw new ArgumentNullException("source", "The value passed in cannot be null"); } if (Radius == 0) { // return((IImageAdapter)source.Clone()); } int width = source.Width; int height = source.Height; ImageAdapter retVal = null; if (Expand) { retVal = new ImageAdapter((int)(width + (Radius + 0.5) * 2), (int)(height + (Radius + 0.5) * 2)); } else { retVal = new ImageAdapter(width, height); } InitializeKernel(); GaussianFilter gaussianFilter = new GaussianFilter(); gaussianFilter.Kernel = _kernel; return(gaussianFilter.Process(source)); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); viewModel = new ImageSearchViewModel(); var adapter = new ImageAdapter(this, viewModel); var recyclerView = FindViewById <RecyclerView>(Resource.Id.ImageRecyclerView); recyclerView.SetAdapter(adapter); var layoutManager = new GridLayoutManager(this, 2); recyclerView.SetLayoutManager(layoutManager); progressBar = FindViewById <ProgressBar>(Resource.Id.ProgressBar); progressBar.Visibility = ViewStates.Gone; editText = FindViewById <EditText>(Resource.Id.SearchEditText); var clickButton = FindViewById <Button>(Resource.Id.GoButton); clickButton.Click += HandleButtonClicked; UserDialogs.Init(this); SupportActionBar.SetDisplayHomeAsUpEnabled(false); SupportActionBar.SetHomeButtonEnabled(false); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.Inflate(Resource.Layout.EventDetails, container, false); var pager = view.FindViewById <ViewPager>(Resource.Id.pager); var tabLayout = view.FindViewById <TabLayout>(Resource.Id.tabs); var imageSlider = view.FindViewById <ViewPager>(Resource.Id.imageSlider); Bitmap[] images = new Bitmap[] { GetImageBitmapFromUrl("http://" + MainActivity.ip + "/shindyAdmin/assets/images/rock.jpg"), GetImageBitmapFromUrl("http://" + MainActivity.ip + "/shindyAdmin/assets/images/car1.jpg"), GetImageBitmapFromUrl("http://" + MainActivity.ip + "/shindyAdmin/assets/images/car2.jpg"), GetImageBitmapFromUrl("http://" + MainActivity.ip + "/shindyAdmin/assets/images/car3.jpg") }; ImageAdapter imageAdapter = new ImageAdapter(this.Context, images); var inviteFriends_button = view.FindViewById <ImageButton>(Resource.Id.sendInvite_button); inviteFriends_button.Click += InviteFriends_button_Click; imageSlider.Adapter = imageAdapter; var adapter = new EventDetailsPagerAdapter(this.Context, Activity.SupportFragmentManager, new String[] { "Details", "Discussion", "Reviews" }, 3); pager.Adapter = adapter; pager.OffscreenPageLimit = 2; tabLayout.SetupWithViewPager(pager); for (int i = 0; i < tabLayout.TabCount; i++) { TabLayout.Tab tab = tabLayout.GetTabAt(i); tab.SetCustomView(adapter.GetTabView(i)); } return(view); }
/// <summary> /// Filter Implementation /// </summary> protected override IImageAdapter ProcessFilter(IImageAdapter source) { IImageAdapter retVal = null; if (source != null) { int width = source.Width; int height = source.Height; retVal = new ImageAdapter(source.Width, source.Height, ColorByte.Empty); if (Automatic) { _delta[0] = 256f / AutomaticNumberOfColors[0]; _delta[1] = 256f / AutomaticNumberOfColors[1]; _delta[2] = 256f / AutomaticNumberOfColors[2]; } for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { retVal[i, j] = ComputeClosestColor(source[i, j]); } } } return(retVal); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.TodaysVisitsView, null); gallery = view.FindViewById<Gallery>(Resource.Id.gallery); gallery.Adapter = source = new ImageAdapter(this); gallery.SetSpacing(30); return view; }
void VisitsOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs args) { if (args.Action == NotifyCollectionChangedAction.Add || args.Action == NotifyCollectionChangedAction.Remove) Activity.RunOnUiThread(() => { gallery.Adapter = source = new ImageAdapter(this); }); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); viewModel = new ImageSearchViewModel(); //Setup RecyclerView adapter = new ImageAdapter(this, viewModel); recyclerView = FindViewById <RecyclerView>(Resource.Id.recyclerView); recyclerView.SetAdapter(adapter); layoutManager = new GridLayoutManager(this, 2); recyclerView.SetLayoutManager(layoutManager); progressBar = FindViewById <ProgressBar>(Resource.Id.my_progress); progressBar.Visibility = ViewStates.Gone; var query = FindViewById <EditText>(Resource.Id.my_query); // Get our button from the layout resource, // and attach an event to it var clickButton = FindViewById <Button>(Resource.Id.my_button); //Button Click event to get images //clickButton.Click += async (sender, args) => //{ // clickButton.Enabled = false; // progressBar.Visibility = ViewStates.Visible; // await viewModel.SearchForImagesAsync(query.Text.Trim()); // progressBar.Visibility = ViewStates.Gone; // clickButton.Enabled = true; //}; clickButton.Click += async(sender, args) => { clickButton.Enabled = false; progressBar.Visibility = ViewStates.Visible; await viewModel.SearchForImagesAsync(query.Text.Trim()); clickButton.Enabled = true; progressBar.Visibility = ViewStates.Gone; }; UserDialogs.Init(this); SupportActionBar.SetDisplayHomeAsUpEnabled(false); SupportActionBar.SetHomeButtonEnabled(false); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.TodaysVisitsView, null); gallery = view.FindViewById <Gallery>(Resource.Id.gallery); gallery.Adapter = source = new ImageAdapter(this); gallery.SetSpacing(30); return(view); }
/// <summary> /// Filter Implementation /// </summary> protected override IImageAdapter ProcessFilter(IImageAdapter source) { //Check params if (source == null) { throw new ArgumentNullException("source", "The IImageAdapter passed in cannot be null"); } ImageAdapter retVal = new ImageAdapter(source.Width, source.Height); if (Amount == 0.0 || Radius == 0.0) { // Do nothing filter, return a clone of the original IImageAdapter for (int y = 0; y < source.Height; y++) { for (int x = 0; x < source.Width; x++) { retVal[x, y] = source[x, y]; } } return(retVal); } // Perform Blur (Gaussian Filter) BlurFilter blurFilter = new BlurFilter(); blurFilter.Radius = Radius; blurFilter.Expand = true; retVal = (ImageAdapter)blurFilter.Process(source); // Compute weights factors double weight = (0.4 - 0.4 * Amount) + 0.6; double originalFactor = (weight / (2.0 * weight - 1.0)); double blurFactor = ((1.0 - weight) / (2.0 * weight - 1.0)); // Combine original image with blurred one to get the Sharpen Image IColor sourceColor = null; IColor blurColor = null; IColor retValColor = null; for (int y = 0; y < retVal.Height; y++) { for (int x = 0; x < retVal.Width; x++) { sourceColor = (IColor)source[x, y].Clone(); blurColor = retVal[x, y]; retValColor = retVal[x, y]; retValColor.ExtendedAlpha = sourceColor.ExtendedAlpha * originalFactor - blurColor.ExtendedAlpha * blurFactor; retValColor.ExtendedRed = sourceColor.ExtendedRed * originalFactor - blurColor.ExtendedRed * blurFactor; retValColor.ExtendedGreen = sourceColor.ExtendedGreen * originalFactor - blurColor.ExtendedGreen * blurFactor; retValColor.ExtendedBlue = sourceColor.ExtendedBlue * originalFactor - blurColor.ExtendedBlue * blurFactor; // retVal[x, y] = retValColor; } } return(retVal); }
public async Task <HttpResponseMessage> getOrphanFacePhotoSizedAndCompressed(int Oid, string Size, long compertion) { string[] sizeString = Size.Split('x'); var image = await _OrphanDBService.GetOrphanFaceImage(Oid); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1]), compertion); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
public async Task <HttpResponseMessage> getOrphanEducationCert2Sized(int Oid, string Size) { string[] sizeString = Size.Split('x'); var image = await _OrphanDBService.GetOrphanCertificate2(Oid); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1])); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
public async Task <HttpResponseMessage> GetMotherIdPhotoBack(int Mid, string Size) { string[] sizeString = Size.Split('x'); var image = await _MotherDBService.GetMotherIdPhotoBack(Mid); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1])); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
} // RtfImageConvertSettings public string GetImageFileName(int index, RtfVisualImageFormat rtfVisualImageFormat) { var imageFileName = ImageAdapter.ResolveFileName(index, rtfVisualImageFormat); if (!string.IsNullOrEmpty(ImagesPath)) { imageFileName = Path.Combine(ImagesPath, imageFileName); } return(imageFileName); } // GetImageFileName
public async Task <HttpResponseMessage> getCaregiverIdentityCardPhotoBack(int CId, string Size) { string[] sizeString = Size.Split('x'); var image = await _CaregiverDBService.GetIdentityCardBack(CId); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1])); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
public async Task <HttpResponseMessage> getFamilyCardPhotoPage2(int FamId, string Size) { string[] sizeString = Size.Split('x'); var image = await _FamilyDBService.GetFamilyCardPage2(FamId); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1])); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
public async Task <HttpResponseMessage> GetFatherDeathCertificate(int Fid, string Size) { string[] sizeString = Size.Split('x'); var image = await _FatherDBService.GetFatherDeathCertificate(Fid); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1])); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
void VisitsOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs args) { if (args.Action == NotifyCollectionChangedAction.Add || args.Action == NotifyCollectionChangedAction.Remove) { Activity.RunOnUiThread(() => { gallery.Adapter = source = new ImageAdapter(this); }); } }
/// <summary> /// internal render /// </summary> internal override IImageAdapter _Render() { // @review : return IImageAdapter with only empty colors instead of throwing ? if (_imageToUse == null) { throw new ApplicationException("Neither ImageToUse nor Path as been set, this GlyphImage is empty"); } GeneratedImage = new ImageAdapter(_imageToUse); return(GeneratedImage); }
public async Task <HttpResponseMessage> getFatherFacePhoto(int Fid, string Size, long compertion) { string[] sizeString = Size.Split('x'); var image = await _FatherDBService.GetFatherPhoto(Fid); var thumb = ImageAdapter.Resize(image, int.Parse(sizeString[0]), int.Parse(sizeString[1]), compertion); return(_httpResponseMessageConfiguerer.ImageContent(thumb)); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); viewModel = new ImageSearchViewModel(); //Setup RecyclerView adapter = new ImageAdapter(this, viewModel); recyclerView = FindViewById <RecyclerView>(Resource.Id.recyclerView); recyclerView.SetAdapter(adapter); layoutManager = new GridLayoutManager(this, 2); recyclerView.SetLayoutManager(layoutManager); progressBar = FindViewById <ProgressBar>(Resource.Id.my_progress); progressBar.Visibility = ViewStates.Gone; var query = FindViewById <EditText>(Resource.Id.my_query); var clickButton = FindViewById <Button>(Resource.Id.my_button); clickButton.Click += async(sender, e) => { clickButton.Enabled = false; progressBar.Visibility = ViewStates.Visible; await viewModel.SearchForImagesAsync(query.Text.Trim()); clickButton.Enabled = true; progressBar.Visibility = ViewStates.Gone; }; //DEMO: 2b - Image Analysis //Button Click event to get images adapter.ItemClick += async(object sender, ImageAdapterClickEventArgs e) => { clickButton.Enabled = false; progressBar.Visibility = ViewStates.Visible; var result = await viewModel.GetImageDescription(viewModel.Images[e.Position].ImageLink); new AlertDialog.Builder(this) .SetTitle("Image Analysis") .SetMessage(result) .SetNeutralButton("OK", delegate { }) .Show(); progressBar.Visibility = ViewStates.Gone; clickButton.Enabled = true; }; UserDialogs.Init(this); SupportActionBar.SetDisplayHomeAsUpEnabled(false); SupportActionBar.SetHomeButtonEnabled(false); }
private object GetParamValue(XmlElement xmlElement, Hashtable aliasCollection, bool acceptTokenOnly) { object retVal = null; switch (xmlElement.LocalName) { case "SNAPSHOT": retVal = new ImageAdapter(((ImageUtility)Snapshot).Bitmap32Bits); break; case "FILE": retVal = new ImageAdapter(new Bitmap(xmlElement.InnerText)); break; case "ALIAS": retVal = (ImageAdapter)aliasCollection[xmlElement.InnerText]; break; case "Filter": retVal = (ImageAdapter)aliasCollection[xmlElement.Attributes["alias"].Value]; break; default: if (acceptTokenOnly) { throw new XmlException("Expected token not found (SNAPSHOT / ALIAS / FILE / Filter)"); } if (xmlElement.HasChildNodes) { if (xmlElement.FirstChild.NodeType == XmlNodeType.Text) { return(xmlElement.FirstChild.InnerText); } else { if (xmlElement.FirstChild.NodeType != XmlNodeType.Element) { // throw new XmlException("Unexpected tag"); } } return(GetParamValue((XmlElement)xmlElement.FirstChild, aliasCollection, acceptTokenOnly)); } else { retVal = xmlElement.InnerText; } break; } return(retVal); }
public CurrentTakenPhotosOverlayView(Context context, ObservableCollection <Java.IO.File> Photos) : base(context) { photos = Photos; var linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.Horizontal, false); imageAdapter = new ImageAdapter(context, photos); imageAdapter.ItemClick += ImageAdapter_ItemClick; SetLayoutManager(linearLayoutManager); SetAdapter(imageAdapter); }
public void RecyclerView() { adapter = new ImageAdapter(this, viewModel); recyclerView = FindViewById <RecyclerView>(Resource.Id.recyclerView); recyclerView.SetAdapter(adapter); layoutManager = new GridLayoutManager(this, 2); recyclerView.SetLayoutManager(layoutManager); }
private static void DRT(string[] args) { try { DeltaImageComparator DIComp = new DeltaImageComparator(); ImageAdapter cntb = new ImageAdapter(new Bitmap(args[0])); ImageAdapter offcnt = new ImageAdapter(new Bitmap(args[1])); ImageAdapter oncnt = new ImageAdapter(new Bitmap(args[2])); double[] transform = new double[6]; for (int j = 0; j < 6; j++) { transform[j] = double.Parse(args[3 + j]); } //add tolerance to the comparison DIComp.Tolerance.Add(0, 100); DIComp.Tolerance.Add(10, 80); DIComp.Tolerance.Add(50, 40); DIComp.Tolerance.Add(100, 10); DIComp.Tolerance.Add(200, 1); //client to provide geometry and alpha map in content // emulating a real scenario here ImageAdapter cnt = new ImageAdapter(300, 200); for (int j = 0; j < cnt.Width; j++) { for (int i = 0; i < cnt.Height; i++) { IColor vsc = (IColor)cntb[j, i].Clone(); vsc.A = 127; cnt[j, i] = vsc; } } Result decres = DIComp.Process(cnt, offcnt, oncnt, transform); Console.WriteLine("Dynamic Content tracking result:"); Console.WriteLine(" Found: " + decres.Found + " Log: " + decres.Log); Console.WriteLine("\n"); if (decres.Found == true) { // const int are defined in DeltaImageComparator.Result to access each corner from Result.CornerLocation Console.WriteLine(" TopLeft coordinates: " + decres.CornerLocations[Result.BottomLeft, 0] + " " + decres.CornerLocations[Result.BottomLeft, 1]); } } catch (Exception e) { Console.WriteLine(e); } }
public unsafe static void OverlayToTarget(RenderTarget target, ImageAdapter image) { SizeU size = new SizeU((uint)image.Width, (uint)image.Height); D2DBitmap d2dImage = target.CreateBitmap(size, new BitmapProperties(new PixelFormat(Microsoft.WindowsAPICodePack.DirectX.Graphics.Format.B8G8R8A8UNorm, AlphaMode.Premultiplied), target.Dpi.X, target.Dpi.Y)); uint left = 0; uint top = 0; RectU rect = new RectU(left, top, left + (uint)image.Width, top + (uint)image.Height); //System.Drawing.Imaging.BitmapData bmData = value.LockBits(new Rectangle(0, 0, value.Width, value.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, value.PixelFormat); d2dImage.CopyFromMemory(rect, (IntPtr)image.ImageBuffer, (uint)image.Width * 4); RectF rf = new RectF(0, 0, image.Width, image.Height); target.DrawBitmap(d2dImage, 1, BitmapInterpolationMode.Linear,rf ); d2dImage.Dispose(); }
public DirectXViewer() { InitializeComponent(); this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.BackColor = Color.Black; //this.DoubleBuffered = true; this.UpdateStyles(); imageAdapter = new ImageAdapter(); renderRect = new RectF(0, 0, Width, Height); // imageProcessorPipeLine = new ImageProcessPipeLine(); this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.DirectXViewer_MouseWheel); }