Refer to Embedded Images Width in SSRS - reporting-services

I want to create an expression in the padding of an embedded image in SSRS report so that i can centralize the image dynamically , the problem with SSRS report is that you can't centralized the image, you need to set an expression to set it dynamically , i searched and i found this solution :
Left Padding:
=CStr(Round((3-System.Drawing.Image.FromStream(new System.IO.MemoryStream(CType(Fields!Photo.Value,Byte()))).Height/96)/2,2)) & "in"
But this in case the image is a database parameter, i want to set the same expression in case my image is embedded so i need to refer to image width dynamically in the above expression, can anyone help me in that, how can i refer to image width and height of an embedded image in an an expression instead of writing the width as number ??

Unfortunately you can't refer to your image control and that's why you can't get width of your image using custom code or expression like in your example. But if you have embedded image than your image is hardcoded into your rdl file, it's not dinamic like in case with data base option. SSRS support only referening to the collection of textboxes (individual or inside tablix, matrix).
So you can simply look which height/width your image has and put it to your expression:
For padding left:
=CStr(Round(("Put here width of your image control in inches"-"Put here width of image in pixes"/"Put here you image resolution")/2,2)) & "in"
So if you have image control with width 5 inches and image with width 300 pixes and dpi 96px/in you should set:
=CStr(Round((5-300/96)/2,2)) & "in"
And the same for padding top, but using height instead of width.
It's not perfect, because if you change your image - you should provide changes also for this expression, but you don't have other choise.

Related

How to convert image scale in pixel to cm unit of the rdlc report?

I want to show image into each cell of tablix. Images are different height. So I must to set display to be Original Size only.
Inside record be assigned by Image. The image get from some column which stored Byte() Array.
Images includes 3 height such as H, H/2 and H*2.
I try to use subreport for supporting different 3 heights and used Hide/Visiable for select one.
But speed of rendering is slow around 7 seconds. It isn't great enough.
So I must use image into the cell without subreport. But I don't know how to prepare a image for fit in report scale . For example, if I want to show image in each row is 3 cm. What resolution I should make the image?

HTML Image Sizing and Variables

I'm using an application called iDashboards, and in it there is a feature I can add called a ViFrame that takes very limited HTML to create a custom frame.
My knowledge of HTML is already pretty limited and with no output feedback, it's hard to use trial and error as a tactic.
I'm trying to display an image. The image changes dependent on the person that's selected in the app. The selection is taken care of by itself, but the problem is that the size of the pictures vary. I'm trying to display the image so that it has a definite height and a scaled width.
Displays the full size image. The HEIGHT element doesn't seem to constrain anything. If I add a WIDTH tag it works but the scaling would be messed up. Is there any way to do what I want?
The way I see it, I have two options I can think of:
1. Make every image in the library a square and then specify square dimensions so no distortion
2. Somehow retrieve the original height and width into variables in HTML and specify both tags with height being constant and width being an expression of the ratio between height and width. None of which I know is even possible. Is it? I don't think it allows tags either to go into JavaScript.
Sorry about my very basic knowledge in HTML, be gentle.
Are you using one object and changing the image or using many images and changing which one is displayed? Any way you could try to use width:YOUR_VALUE_HERE; height:auto in your css document, which should keep them all in the same ratio.
Set a particular class on the IMG tag:
<img class='constrained_img' src='/path/to/img.png'>
In your CSS/Stylesheet:
.constrained_img {
max-width:100px;
max-height:100px;
}
That should keep your height and width to no larger than 100px in this case. Any further work you'd need to do server-side processing (a la PHP's getimagesize()), or use a 3rd-party library (I've used Joseph Lencioni's SLIR to good effect), or muck around with JavaScript (which isn't impossible, but off the top of my head I'm not sure how I'd go about it).

SSRS personal paper size issue

I have a Label with this meassures
Heigth = 8cm
Width = 10cm
And need to print in portrait mode, the problem is that report builder allways change it to Landscape mode
How can I do to force Report builder to accept my meassures without changhing the orientation?
A page that has the top edge longer than the left edge is Landscape; those with a longer left edge than top edge are portrait - that's just the way it is by definition.
What you actually want to do is rotate the output of your table so that when you peel off the label, the text on it is oriented as if it is portrait.
Given you are on 2008 R2 you can set the table cell's WritingMode property to Rotate270. You'll need to resize your cell dimensions to accommodate your text and have your data in columns rather than rows. So your Detail row will be 8cm high and 10cm wide with a number of thin, high columns for your data with the text rotated 270 degrees. Ensure that the report project's TargetServerVersion property is set to SQL Server 2008 R2 or it won't support the Rotate270 option. This should give you the result you are after.
Failing this, you could create a table with a single Detail cell the size of your label, place an image in the cell to fill it and draw the text on that image in the orientation that you want using custom code. Here is an example of how to do this with a code sample.
If you right click the blue background and go to Report Properties, you should see an Orientation selection there. Make sure that's set to Portrait.
If it is already Portrait then the problem is likely to be that the body of your report is too wide for the Paper Size you have selected.

Dynamic and responsive class names with Angular JS

I have a set of images that are brought back from the server through an Angular scope and I'd like to set a unique class name for each div wrapper. The css needs to be responsive as well where the background-image changes based on the page layout. For instance, if the page width is below 768px, the background-image uses a smaller image size (ImageMediumUrl) otherwise it will use the big size (ImageUrl).
My code for constructing the html is as follows:
<div class="item" data-ng-repeat="image in carousel_images">
<img border="0" src="/Content/img/blank.gif" ng-style="{'background-image':'url({{image.ImageUrl}})'}" />
</div>
Currently, the background-image is set to the big size as you can tell from the code above.
How can I dynamically create a set of responsive class names (media queries in Angular?) for every div wrapper?
Perhaps you need to create a directive that detects window resize and then rebuild the markup depending on the current size / window state.
Here's an example of a directive that does this and sets the "display mode" on the bound attribute.
http://www.dnasir.com/2013/10/09/display-mode-detection-for-responsive-websites-using-angularjs/

How to resize image in HTML using percentage as parameters?

I would like to resize an image on my website. I know how to do it by either resizing the image before or calculating the width and height and setting the values in pixels. But I use the same picture multiple times with different dimmensions, so it would take me less time if I could resize the image relatively to its own size.
<img src='images/logo-beta.png' id="logo" height="75%" width="75%"/>
I have tried this, however the problem is that the size is set relative to its parent element.
There's no way to do what you want automatically using HTML or CSS alone. You'll need to use JavaScript to get the image's dimensions, then calculate a percentage of those dimensions and reapply them to the image in pixels
There is a method, but it isn't perfect. It requires a wrapping element whose display is set to 'inline-block' and the image is resized using 'max-width'.
The issue is that the parent element retains the image's original width, which could cause problems depending on your requirements.
Example: http://jsfiddle.net/amustill/GnEw5/