What I'm trying to do:
I've added a splash screen to an application I'm creating for Windows Phone 7. I did this simply by replacing the pre-existing splash screen file with my own.
What goes wrong:
The splash screen is not displayed like it should be - it is being down sampled to an 8 bit image or something weird:
-
The image I'm using
-
The image that gets displayed
It's a bit hard to see depending on your monitor, but on a phone it's reasonably obvious. There are fuzzy greenish lines that appear - basically like the image is being down sampled or the quality worsened.
Any idea what I'm doing wrong, or what might be happening?
Thanks.
Try forcing the app to display images at 32 bits per pixel (instead of the default of 16)
Add an attribute of BitsPerPixel="32" to the app element in WMAppManifest.xml
See http://forums.create.msdn.com/forums/p/85960/520394.aspx#520394
The problem is that the gradient on your splash screen is causing banding, which you can solve by dithering. Robby Ingebretsen has an action for PhotoShop that you can use: http://nerdplusart.com/photoshop-action-for-windows-phone-7-dithering
I suspect the emulator. Run the emulator at full size or run the app on an actual device.
Windows Phone is currently only supporting a color depth of 16bit, causing especially some gradients displaying downsampled for 24bit images. Some first generation firmwares by HTC had a "bug" that also allowed 24bit. Theoretically it is just a registry key, but you cannot commonly change it. Microsoft has limited the color depth to 16bit for the benefit of performance, but as far as I knnow there are some second-generation models without this limitation now.
You may try to downsample the image in Photoshop to 16bit and optimize it for this color depth.
Related
I am currently working on an engineering project that will include a 7", 800x480 Raspberry Pi LCD screen to display wether or not an experiment is going accordingly to plan (a parameter's value will be shown in green if so, and red if it isn't). By my calculations, this would mean I am getting a 131 PPI image quality in said screen.
It is important to verify wether or not the information is readable from afar, and for such I am trying to emulate a screen with these properties in my laptop's screen. My best attempt so far was to use Chrome's DevTools, but it seems to only re-size the webpage, and doesn't adjust image's PPI. Is there any other, easier ways to accomplish what I am trying to do?
PS: I could simply connect my screen to the RPi and be done with it, yes, but I got curious if there is any way to do that (also the RPi is currently being used for other purposes, so I can't access it that easily rigth now).
Following DevTool's device mode was the closest I got, due to its abilito to set any image size I wanted, but the PPI does not seem to have been altered.
I'm running out of hair to pull. I created two icons:
icon#2x.png (114x114)
icon.png (57x57)
For some reason they appear half sized, however. See this screenshot:
https://docs.google.com/open?id=0BxSFZAq0OUFGbXFWbWNTVlo3RHc
I'm 100% confident my icon sizes are as described. Any ideas why this might happen?
Some side notes that may or may not be relevant:
- I'm using PhoneGap + JQueryMobile, not that that should mapper
- I dragged a reference to the two icons into the Resources/icons folder, replacing the original icon.png and icon#2x.png files.
I had this problem as well. I experimented and discovered that it is related to the pixels/inch resolution. icon#2x seems to want 150 pixels/inch for full size, 300 pixels/inch gives half size, and 600 pixels/inch (which is what I was using) gives quarter size. As near as I can tell, image resolution didn't really have that much of an impact on the quality of the image when placed on an iPhone. My icon is very sensitive to rendering, so any degradation of image quality would have been readily noticeable.
Changing all the icons to 72dpi from 300dpi solved my problem.
Check the icon, as this is png image there was transparent background so crop the png file that starts with postion where blue color starts in the image. This solves your problem
I just had the same issue. My solution was to just open them in Xee (probably lots of other programs will do the trick) and resave them as png. My icons were originally created in gimp and this may something to do with they way that gimp saved them.
Exactly same thing happened to my defaults files - the same solution fixed it.
I had this issue when creating assets with Gimp. To solve it I unchecked "Save resolution" in the export dialog.
Windows phone asks for specific image sizes when submitting an application. When I take the image I wanna use and resize it to the dimensiond they want it distorts the image. If I keep it proportional Ill never get the exact sizes they need. What do you guys do to resolve this?
I used Photoshop. Open the image, choose "Image" > "Canvas Size". That will adjust the size of the image without distorting it. I am sure you can also use any of the free image applications like gimp http://www.gimp.org/
I need to develop a desktop application which will
1.) have a list of the Different Application logos (Background Transparent) e.g. IE, FIREFOX, CHROME, PHOTOSHOP ETC.
2.) User will take a screenshot of desktop and save the image.
3.) Now my application need to search all the logos in the screenshot image and tell which all logos are present and where.
4.) I used OPENCV, it's working, but when user changes the desktop background & captures screenshot, it's not working as the transparent area of logo is getting the desktop background content.
Can somebody provide a solution or libraries open source, commercial to do this job.
This is easy to do using cross-correlation.
See my answer to this question.
Basically:
Start with desktop image and one template image for each icon
Apply edge detection (e.g. Sobel) to the desktop image and template images.
Throw away the original desktop image and templates, you won't need them anymore cause we'll be using the edge-detected images
For each template
Do template matching as you normally would
Threshold the maximum of the result. If it's above the threshold, you have a match at that position. Otherwise, no match.
If your icons are aligned in a grid on the desktop, you may be able to speed up your processing by only checking those specific grid positions.
EDIT
You can also save a lot of time by knowing which icons to search for. If you have access to the file system, then just look for *.lnk files (or any other extensions you may be interested in) in the directory that corresponds to the desktop (can't remember exactly what it is, but for Windows7 it's something like c:\users\misha\desktop). That will tell you what icons are there on the desktop. This will allow you to shorten your template candidate list before you go and do the template matching.
I like misha's answer and I think it should work for you. But it that doesn't work you could try replacing the transparant pixels in your reference logo with uniformly distributed random noise before trying the match. This will make the transparant pixels irrelevant for any matching computation because they will match just as bad no matter what there is on the desktop in those pixels.
I'm not familiar with the tools you're using, but I'm guessing you have to either:
a) Tell your program to ignore transparent pixels in the icon images during the comparison operation.
OR
b) Tell your program to treat transparent pixels in the icon images as "wildcards" which can be any color.
I was wondering how do software like GotoMeeting capture desktop. I can do a full screen (or block by block) capture using GDI but that just seems too wasteful to me. Also I have looked into Mirror devices but I was wondering if there's a simpler technique or a library out there which does this.
I need fast and efficient desktop screen capture (10p15 fps) which I am eventually going to convert into a video file and integrate with my application to send the captured feed over the network or something.
Thanks!
Yes, taking a screen capture and finding the diff between previous capture would be a good way to reduce bandwidth on transmission by sending the changes across only, of course this is similar to video encoding techniques which does this block by block.
Still means you need to do a capture plus extra processing for getting the difference, i.e, encoding it.
by using the Mirror devices you can get both the updated Rectangle that are change and also pointer to the Screen. updated Rectangle pointer point to all the rectangle that are change , these rectangle are the change rectangle that are frequently changing. filter out some of the rectangle because in one second you can get 1000 of rectangles.
I would either:
Do full screen captures, and then
perform image processing to isolate
parts of the screen that have changed
to save bandwidth.
-OR-
Use a program like CamStudio.
i got 20 to 30 frame per second using memory driver i am display on my picture box but when i get full screen update then these frame are buffered. as picture box is slow and have change to my own component this is some how fast but not good on full screen as well averge i display 10 fps in full screen. i am facing problem in rendering frames i can capture 20 to 30 frames per second but my rendering is 8 to 10 full screen frames in one second . if any one has achive rendering frames in full screen please replay me.
What language?
.NET provides Graphics.CopyFromScreen.