Multiscale Image Printing with Canves Overlay in Silverlight - silverlight

We have a system in which we have big plan images loading in multiscale deepzoom images like an image gallery.Images are usually of very high resolutions.
Users have the ability to draw shapes ect on selected deepzoom image.We are using a canves on deepzoom image and save all overlay shapes drwan along with their logical poistion in db.thus the drawn shapes auto sets their position as user pans in or pans out.
We need an automated solution so we can take the printout of all the plan images along with all overlay work done on each deepzoom image.
Currently we are doing this one by one i.e we use Grid,Multistage,Canvas.We load image in Multiscale image,then draw Canves then we use following code to same them in jpeg from Grid(ContentGrid)
SaveFileDialog saveDlg = new SaveFileDialog();
saveDlg.Filter = "JPG Files (*.jpg|*.jpg|*.jpeg|*.jpeg)";
saveDlg.DefaultExt = ".jpg";
if ((bool)saveDlg.ShowDialog())
{
using (Stream fs = saveDlg.OpenFile())
{
SaveToFile(new WriteableBitmap(ContentGrid, null), fs);
}
}
But this solution does not work properly.This throws memory issues when deepzoom image is big one.
We want something like this.For all plans images in gallery we need to loop and programatically convert to jpeg along with canves etc and then save to Amazon s3 by program.An automation will pick all the jpegs and make a single pdf for all those.
or an automated solution.
Please suggest.

Related

Is there a way to move some images on the screen and while they are moving record the scene as a video?

as you can read from the title i want to be able to draw some images on the screen, move them in some direction and video capture the movement with a good fps rate.
I want to specify that i do not want to record the desktop nor some portion of it but the content of the actual window in which the images are moving(so the window can also be minimized). Also if possible i want to be able to set a custom size for my view where everything will happen.
Where i should start from?
I have already tried with WPF but as the UI is single threaded i am not able to take a screenshot of the view while something is moving on it.
What library you would suggest me?
Are there similar open-source projects i can learn from?
Any suggestion i welcomed!
Here's some code I recently wrote to do this, it cycles through a number of frames and renders a control (in this case, a Canvas) into PNGs:
private void Export(int frame)
{
// force the control to update after any changes you've just made
theCanvas.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
// render the control into a bitmap
RenderTargetBitmap bitmap = new RenderTargetBitmap(1920, 1080, 96, 96, PixelFormats.Pbgra32);
bitmap.Render(theCanvas);
// save the bitmap out as a PNG
using (var stream = File.Create($"Animation/Frame_{frame.ToString("D3")}.png"))
{
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.Save(stream);
}
}
You can then use ffmpeg to pack those PNGs into the movie file format of your choice.

Crop letters from a single image and create a dataset

Above image has handwritten hindi / deavanagari letters all on a single
image.
Task is to Prepare a dataset from the given assignment.jpg image using image
processing tools
Idon't have clarity whether i can use photoshop editing tools like adobe photoshop etc.
If image processing tools mean opencv , is it really possible to create like a emnist like dataset from single image.
I am not able to come up with any way to seperate the letters from eachother

codename one Resize Image quality

My requirement is to show the small image into the bigger one at the same quality. I have tried setting the background image to the container, scaleImageLabel, ImageViewer by doing so I can achieve the required size but the quality is not good.
using cloudinary is the only option to go with or if there is any other option available.
Following code has been used.
ImageViewer iv = new ImageViewer();
iv.setImageInitialPosition(IMAGE_FIT);
iv.setPreferredH(Display.getInstance().getDisplayHeight() / 2);
iv.setImageNoReposition(vi.img);
Need to remove the blank space top and bottom
while using IMAGE_FILL image has been croped

Generating tiles from BitmapImage

I am generating tiles from very large images to use with leaflet. I have a working solution that uses System.Drawing.Bitmap and loads the image from file. I already have the image in memory as a BitmapImage however, and would like to reuse it for memory purposes since these images can be very large. But I can not find a good way of doing this with BitmapImage.
What I basically need is something equivalent of
GraphicsHandle.DrawImage(sourceImage, destinationRect, sourceRect, GraphicsUnit.Pixel);
I need to crop and resize a part of the image, and draw this onto another image in a specified location and then save this to file. What is the best way of doing this using BitmapImage?

UIElement to PNG - Text slightly blurred

I am using ImageTool's PNG encoder to create an image.
I have a Grid that contains multiple TextBlocks, each TextBlock contains dynamic text.
When I create a WriteableBitmap from the grid containing the TextBlocks, I then use ImageTool's encoder to convert the WriteableBitmap to a PNG image.
All works well, however, when I view the PNG image (am saving the file to the hard drive for testing purposes) - the text looks slightly blurred. Is this an issue with the encoder or the WriteableBitmap class? And - has anyone experienced this before and are there workarounds?
Thanks.
I'm a part of ImageTool project but I'm playing as a tester since I'm using this library in one of my project... If you can create a sample then you can probably show us so that we can test in our machine.
You can also try with Joe Stegman's encoder or fJCore JPEG encoder.

Resources