<!doctypehtml><html lang=en><meta charset=utf-8><meta content=width=device-width,initial-scale=1.0 name=viewport><link as=font crossorigin href=/font/pc-icons.woff2?91b456c3df2888ef0d8f615d141620dc rel=preload type=font/woff2><link crossorigin href=https://fonts.gstatic.com rel=preconnect><link href=https://fonts.googleapis.com/css?family=Roboto:300,400,500 rel=stylesheet><link crossorigin href=https://ajax.googleapis.com rel=preconnect><link href=/style/min/planetcalc_common_4065.css rel=stylesheet><script async src=https://securepubads.g.doubleclick.net/tag/js/gpt.js></script><script>window.googletag = window.googletag || {cmd: []};googletag.cmd.push(function() {googletag.pubads().setRequestNonPersonalizedAds(0);var mapping0  = googletag.sizeMapping().addSize([1500,200],  [970,90]).addSize([768,200],  [728,90]).addSize([480,200],  [468,60]).addSize([0,0],  [320,250]).build();googletag.defineSlot('/13440450/v7.en.A.E.top', [[970,90],[728,90],[468,60],[320,250]], 'div-gpt-ad-1635710065-1').defineSizeMapping(mapping0).addService(googletag.pubads());
var mapping1  = googletag.sizeMapping().addSize([768,200],  [728,90]).addSize([480,200],  [468,60]).addSize([0,0],  [320,250]).build();googletag.defineSlot('/13440450/v7.en.A.E.bottom', [[728,90],[468,60],[320,250]], 'div-gpt-ad-1635710065-2').defineSizeMapping(mapping1).addService(googletag.pubads());
var mapping2  = googletag.sizeMapping().addSize([0,0],  [320,250]).build();googletag.defineSlot('/13440450/v7.en.A.E.right', [[320,250]], 'div-gpt-ad-1635710065-3').defineSizeMapping(mapping2).addService(googletag.pubads());
var mapping3  = googletag.sizeMapping().addSize([768,400],  [320,250]).build();googletag.defineSlot('/13440450/v7.en.A.E.sticker', [[320,250]], 'div-gpt-ad-1635710065-4').defineSizeMapping(mapping3).addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});</script><meta content="converters, dots per inch, DPI, inch, photo, pixel, pixels, pixels per inch, PPI, print, resolution, size, Units converters"name=keywords><meta content=" This article is about the relation between an image size in pixels and a photographic print size. First, it recommends the photographic print size for given digital image dimensions in pixels. Second, it finds the resulting pixels per inch value for a printed digital image with known linear and pixel dimensions."name=description><meta content="Timur : planetcalc member"name=author><meta content=Planetcalc name=generator><link href=https://planetcalc.com/1688/ rel=canonical><style>.social-float {
	position: absolute;
	margin-left: auto;
	margin-right: auto;
	left: 0;
	right: 0;
	width: 350px;
    	height: 400px;
    	background: white;
	box-shadow: 0 0 10px rgba(0,0,0,0.5);
	z-index: 100;
}
td.comment_created {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
}
td.message {
	padding-top:0 !important;
}

#main_div { padding:0 }
.f_ {
	margin-top:0;
}

	#request_status { width:900px; }
	.modal-body {  max-height: 800px;}
.sofia {
	margin:8px auto;
	text-align:center;
}
.right-ads { margin:16px 0; }
.v5 {
	background-color:#fafafa;
}
.card-authors { padding:0 1.5em 1.5em 1.5em; }

.author-date {
	padding:16px 0;
}
.author-date i {
	padding-right:8px;
}
.author-date a {
	padding-right:32px;
}
#comments {
	margin-top:32px;
}
#comments .t9 {
	margin-top:0;
}
.ads-inline {
    text-align: center;
}
.embed-form {
	margin-bottom:16px;
}

div.social a.oc { margin-right:16px }
div.social { margin: 16px 0; }
div.social h4 { margin-bottom:0 }
.share-url-text { margin:16px 0 }
.share-mode { margin-bottom: 16px; }
.share-url-text div { width:100% }
.similar-calc ul {  padding:0; }
.similar-calc ul li { padding:0 0 16px 16px; display: inline-block; }
#div-gpt-ad-1635710065-1{min-height:250px}#div-gpt-ad-1635710065-2{min-height:250px}#div-gpt-ad-1635710065-3{min-height:250px}
@media (min-width:480px){#div-gpt-ad-1635710065-1{min-height:60px}#div-gpt-ad-1635710065-2{min-height:60px}}
@media (min-width:768px){#div-gpt-ad-1635710065-1{min-height:90px}#div-gpt-ad-1635710065-2{min-height:90px}#div-gpt-ad-1635710065-4{min-height:250px}}
@media (min-width:1500px){#div-gpt-ad-1635710065-1{min-height:90px}}</style><title>
   Online calculator: Digital image size in pixels and photo print size
  </title><body class="y1 viewer"id=ui_viewer><div class="nc w0 g1"id=main_menu tabindex=-1><ul aria-hidden=true class=z0 role=menu><li class=a1 onclick=document.location.href='/all/'; role=menuitem tabindex=0><span class=y0> <i class=material-icons>  </i> </span> <span class=b1> All online calculators </span><li class=a1 onclick=document.location.href='/personal/requests/new/'; role=menuitem tabindex=-1><span class=y0> <i class=material-icons>  </i> </span> <span class=b1> Suggest a calculator </span><li class=a1 onclick=document.location.href='/todo/translationtask/?id[]=1688&from=en'; role=menuitem tabindex=-1><span class=y0> <i class=material-icons>  </i> </span> <span class=b1> Translation </span></ul></div><div class="m1 q7 kb"><div class=q1><div class="r1 s1 mdc-toolbar__section--shrink-to-fit"><a class="material-icons n1"href=# id=btn_main_menu>  </a><a class="u1 nb"title="Online calculators"href=/> <h2 class=u1>PLANETCALC <span class="cc kc"> Online calculators </span></h2> </a></div><div class="r1 t1"><a class="material-icons cc n1"href=# id=btn_change_language_menu>  </a><a class="material-icons n1"href=/search/>  </a><a class="cc ob c2 g2"href=/personal/ id=planetcalc_login> Login </a></div></div><div style=min-height:0;><div class="nc w0 g1"id=change_language_menu tabindex=1><ul aria-hidden=true class=z0 role=menu><li class=a1 id=change_language_de onclick=document.location.href='https://de.planetcalc.com/1688/?language_select=de'; role=menuitem tabindex=0><span class=y0> <i class=material-icons> </i> </span> <span class=b1> Deutsch </span><li class="a1 f1"id=change_language_en role=menuitem tabindex=-1><span class=y0> <i class=material-icons>  </i> </span> <span class=b1> English </span><li class=a1 id=change_language_es onclick=document.location.href='https://es.planetcalc.com/1688/?language_select=es'; role=menuitem tabindex=-1><span class=y0> <i class=material-icons> </i> </span> <span class=b1> Español </span><li class=a1 id=change_language_fr onclick=document.location.href='https://fr.planetcalc.com/1688/?language_select=fr'; role=menuitem tabindex=-1><span class=y0> <i class=material-icons> </i> </span> <span class=b1> Français </span><li class=a1 id=change_language_pt onclick=document.location.href='https://pt.planetcalc.com/1688/?language_select=pt'; role=menuitem tabindex=-1><span class=y0> <i class=material-icons> </i> </span> <span class=b1> Português </span><li class=a1 id=change_language_ru onclick=document.location.href='https://planetcalc.ru/1688/?language_select=ru'; role=menuitem tabindex=-1><span class=y0> <i class=material-icons> </i> </span> <span class=b1> Русский </span></ul></div></div></div><div class=jb id=main_div><div class=v_><div class=w_><div class="main-column x_ g0"id=left-block><div class=qb><a class=material-icons href=/>  </a><i class=material-icons>  </i><a href=/search/?tag=1459> Professional </a><i class=material-icons>  </i><a href=/search/?tag=255> Units converters </a></div><header><h1>Digital image size in pixels and photo print size</h1><p class=f_>This article is about the relation between an image size in pixels and a photographic print size. First, it recommends the photographic print size for given digital image dimensions in pixels. Second, it finds the resulting pixels per inch value for a printed digital image with known linear and pixel dimensions.<div></div></header><script>document.addEventListener("DOMContentLoaded",function() {
	var f = new FormatterTimeSpan();
	$('.nav-created').text(function ( i,t ) { return f.Format(t);});
});</script><div class=article><div class=article_body><p>This article is about the relation between a digital image size in pixels and the photographic print size.<p>The first calculator recommends the photographic print size for given digital image dimensions in pixels.<p>Let's define the problem: <br> We have a digital image with the known size in pixels, for example 3264 x 2448, and we also have a known set of standard photo print sizes used by photographic printing services. The photo print size name defines the linear dimensions of a photo print – for example, 4''x6'' or 4R photo print size means that the photo print has 102x152 millimeters dimensions.<p>We want to choose the maximum photo print size that allows us to print the digital image without quality loss.<p>I've created the handbook <a href=/1685/> Standard photographic print sizes </a> for defining standard photo print sizes, which can be edited to provide missed sizes.<p>The only special knowledge we needed to solve the problem was about quality, which was easily found on the web. Photographic quality (at an arm's length viewing distance) requires that the print resolution should be no less than 300 DPI (dots per inch), which can also be written as 300 PPI (pixels per inch). A still-acceptable quality requires that the print resolution should be no less than 150 DPI. Armed with this knowledge, everything else is simple math.<p>Look at the picture below <br><div style=text-align:center><img alt=photo1en.PNG class=je src=/users/2/1322254531.PNG title=photo1en.PNG></div><p><br> <br> Each photo print size is converted to pixels, assuming that 1 inch holds 300 (150) pixels. The obtained size in pixels (taking into account the aspect ratio, more on this below) is compared to the digital image size. If the print size in pixels is greater than the digital image size (see picture, print size on the right), then it will not fit, since we would have to enlarge the image and the resulting resolution would be worse than 300 DPI. If the print size in pixels is less than the digital image size (see picture, print size on the left), then it would fit, since we have to shrink the image and would obtain a resolution better than 300 DPI.<p>The calculator chooses the print size with the maximum linear dimension that will fit. (A smaller size isn't a problem since we can print with resolution up to 1200 DPI.)<p><div id=calculator1686></div><div class=ads-inline><div id=div-gpt-ad-1635710065-1><script>googletag.cmd.push(function() { googletag.display("div-gpt-ad-1635710065-1");});</script></div></div><div class=pc-article-part><div class=u5><div class="w_ f8"id=dialogv612229294e33a><div class="x_ j0"><div class="s8 t8"><a class=t_ href=https://planetcalc.com/1686/?license=1 target=_blank> <img alt="PLANETCALC, Photo print size"height=32 src=/img/32x32i.png width=32> </a><h4 class=y9>Photo print size</h4></div></div><div class="x_ c0"><div class="j4 g8"><input class=l4 id=dialogv612229294e33a_width name=width size=12 value=3264><label class="h3 i3"for=dialogv612229294e33a_width>Width of digital image (pixels)</label><div class=_3></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv612229294e33a_width></div></div></div><div class="x_ c0"><div class="j4 g8"><input class=l4 id=dialogv612229294e33a_height name=height size=12 value=2448><label class="h3 i3"for=dialogv612229294e33a_height>Height of digital image (pixels)</label><div class=_3></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv612229294e33a_height></div></div></div><div class="x_ j0"><div class=r8><button class="c2 g2 s_ pc-btn-calc"id=dialogv612229294e33a_calculate type=button><span id=dialogv612229294e33a_button_text> Calculate </span></button></div></div><div class="x_ j0"><div class=e8><div class="c8 m0 t0"id=dialogv612229294e33a__progress_ role=progressbar><div class=p0></div><div class=q0></div><div class="n0 r0"><span class=o0> </span></div><div class="n0 s0"><span class=o0> </span></div></div></div></div><div class="x_ j0"><div></div><div class="n4 x"><div class="e4 c4"id=hlp_default_dialogv612229294e33a></div></div></div><div class="x_ a0"><div class=o8>Recommended size for 300 dpi photo print or better</div><div class="pc-output-value p8"id=dialogv612229294e33a_format300> </div></div><div class="x_ a0"><div class=o8>300 dpi photo print size in pixels</div><div class="pc-output-value p8"id=dialogv612229294e33a_pixel300> </div></div><div class="x_ a0"><div class=o8>Recommended size for 150 dpi photo print or better</div><div class="pc-output-value p8"id=dialogv612229294e33a_format150> </div></div><div class="x_ a0"><div class=o8>150 dpi photo print size in pixels</div><div class="pc-output-value p8"id=dialogv612229294e33a_pixel150> </div></div><div class="x_ j0"><div class=b2><div class=pc-calc-footer><div class="ba u8"></div></div></div></div></div><script>function Dialogv612229294e33a() {var me = this;me.id = "dialogv612229294e33a";me.GetElement = function () { return document.getElementById( me.id ); };me.GetEventHandlerName = function () { return "dialoghandlerv612229294e33a"; };this.dialog_controls = [new DialogInput("width", this, new ValidatorNumber( false, false),new ElementAccessorNumber(),new ValidatorNumber( false, false)),new DialogInput("height", this, new ValidatorNumber( false, false),new ElementAccessorNumber(),new ValidatorNumber( false, false)),new DialogInput("calculate", this, 0,new ElementAccessorOperation()),new DialogInput("_progress_", this, 0,new ElementAccessorDefault()),new DialogInput("", this, 0,new ElementAccessorDefault()),new DialogInput("format300", this, 0,new ElementAccessorOutput()),new DialogInput("pixel300", this, 0,new ElementAccessorOutput()),new DialogInput("format150", this, 0,new ElementAccessorOutput()),new DialogInput("pixel150", this, 0,new ElementAccessorOutput())];me.dialog_controls._all ={};me.dialog_controls.forEach( function( e ) { if (me[e.id]===undefined) me[e.id] = e; me.dialog_controls._all[e.id] = e;} );this.addHandler = function ( handler ) {this.dialog_controls.forEach(function(c) { c.addHandler( handler);});};this.SetValues = function ( values ) {this.dialog_controls.forEach(function(c) {if ( values[c.id]!==undefined ) { c.SetValue( values[c.id] ); }});};this.Clear = function ( ) {this.dialog_controls.forEach(function( c) { c.ResetValue();});};this.SetDefaultValues = function () { this.Clear();};this.GetValues = function () {var ret = {}; this.dialog_controls.forEach(function( c) { ret[c.id] = c.GetValue();});return ret;};this.Validate = function ( ) {for(var i=0;i<me.dialog_controls.length;++i) if (!me.dialog_controls[i].Validate()) return false; return true;};this.layout = function ( ) {}};document.addEventListener("DOMContentLoaded", function(event) {var dlg = new Dialogv612229294e33a();
var hd = new CalculatorHandler(new function () {
var me = this;
me.id = 1686;
me.global = 1;
var outputs = {};
me.sinks={change:[],done:[]};
me.startOnLoad = 1;
me.infinite = 0;
var inputs = {};
var renderers = {};
var recordsets = {};
var diagrams = {};
var handler, dialog, refreshTimer;
var worker; var proxies; var stubs;
var outer = this;
var Planetcalc = new function() { 
var inner = this; var Planetcalc = inner; var cpcData = new CalcProgressData();inner.data=[];var datacount=1;var Calculate1686_cpc = new CalcProgressControl(cpcData);
var Resources1686errors = {"notfound":"Not found"};inner.Resources1686errors=Resources1686errors;inner.Calculate1686 = function( ___inp___ ) {
var progressControl = Calculate1686_cpc;if (datacount) return;
var Calculate1686_result={};function  __impl__( __inp__ ) {

var height = __inp__["height"]===undefined?2448:__inp__["height"];
var width = __inp__["width"]===undefined?3264:__inp__["width"];
var errors = Resources1686errors;
var format300 = { "SetValue": function( v ) { Calculate1686_result["format300"]=v; } };
var format150 = { "SetValue": function( v ) { Calculate1686_result["format150"]=v; } };
var pixel150 = { "SetValue": function( v ) { Calculate1686_result["pixel150"]=v; } };
var pixel300 = { "SetValue": function( v ) { Calculate1686_result["pixel300"]=v; } };
var formats = inner.data[0];
Calculate1686_result.formats = formats;//var str = "";
//var first = formats[0];
//for(var i in first)
//	str +=  i + " " + first[i];
//alert(str);

var theight = height > width ? width : height;
var twidth = height > width ? hieght : width;

var rate = theight/twidth;

var tformat300 = null;
var tformat150 = null;
for (var i = 0; i < formats.length; ++i)
{
	format = formats[i];
	var fHeigth300 = (format.height / 25.4) * 300;
	var fWidth300 = (format.width / 25.4) * 300;

	var fHeigth150 = (format.height / 25.4) * 150;
	var fWidth150 = (format.width / 25.4) * 150;
	//alert(format.Name + " 300: " + fHeigth300.toFixed(0) + " " + fWidth300.toFixed(0) + " 150: " + fHeigth150.toFixed(0) + " " + fWidth150.toFixed(0));
	var frate = format.height / format.width;
	if (frate <= rate)
	{
		if (twidth >= fWidth300)
		{
			if (!tformat300 || tformat300.width < format.width)
				tformat300 = format;
		}
		if (twidth >= fWidth150)
		{
			if (!tformat150 || tformat150.width < format.width)
				tformat150 = format;
		}
	}
	else
	{
		if (theight>= fWidth300)
		{
			if (!tformat300 || tformat300.height < format.height)
				tformat300 = format;
		}		
		if (theight>= fWidth150)
		{
			if (!tformat150 || tformat150.height < format.height)
				tformat150 = format;
		}		
	}
}

if (tformat300 != null)
{
	format300.SetValue(tformat300.Name);
	pixel300.SetValue( (300*(tformat300.width/25.4)).toFixed(0) + "x" + (300*(tformat300.height/25.4)).toFixed(0) );	
}
else
{
	format300.SetValue(errors["notfound"]);
	pixel300.SetValue(errors["notfound"]);
}
if (tformat150 != null)
{
	format150.SetValue(tformat150.Name);
	pixel150.SetValue( (150*(tformat150.width/25.4)).toFixed(0) + "x" + (150*(tformat150.height/25.4)).toFixed(0) );	
}
else
{
	format150.SetValue(errors["notfound"]);
	pixel150.SetValue(errors["notfound"]);
}

};
 __impl__(___inp___); if ( progressControl.completed() ) { progressControl.context = null; } return Calculate1686_result;};inner.main=inner.Calculate1686;inner.progressControl = Calculate1686_cpc; inner.init = function(){BSMakePOSTRequest("//" + BSGetDataSourceDomain() + "/service/gethandbook/", 
			{OnResponse : function( o ) { inner.data[0] = o; if ( --datacount == 0) inner.progressControl.onDataReady();}}
			, {"url":"1685","expires":86400,"language":"en","table_id":""});};};me.adapter = null;function startLoad() {
me.progressControl.addEventListener("ready",handler.onReady);
Planetcalc.init(); }
me.timeout = 1500;
me.auto = 1;
me.init = function ( h, dlg ) { var o; handler=h;dialog =dlg;me.progressControl = Planetcalc.progressControl;var n; var fn;n='height';if ( dlg[n] ) { inputs[n] = dlg[n]; }n='width';if ( dlg[n] ) { inputs[n] = dlg[n]; }o = dlg.format300;outputs[o.id] =o;o.formatter =new FormatterSame( );o = dlg.format150;outputs[o.id] =o;o.formatter =new FormatterSame( );o = dlg.pixel150;outputs[o.id] =o;o.formatter =new FormatterSame( );o = dlg.pixel300;outputs[o.id] =o;o.formatter =new FormatterSame( );startLoad();};
me.stop = function() {
	if (worker) worker.postMessage({type:"stop"}); 
	else Planetcalc.progressControl.stop();
};
me.start = function() {
	handler.onStart();
	if (worker) {
		me.changeDisplayOptions();
		worker.postMessage({type:"start",inputs:proxies(dialog.GetValues())});
	} else {
inputValues = {"height":Number(inputs.height.GetValue()), "width":Number(inputs.width.GetValue())};	Planetcalc.progressControl.clear();
		me.result = null;
		me.refresh();
	}
};me.getInputs = function() {
	return inputs;
};
function objectValues( a, o ) {
	for(var n in o) {
		a.push( o[n] );
	}
}
me.getOutputs = function() {
	var ret = [];
	objectValues( ret, outputs );
	objectValues( ret, diagrams );
	objectValues( ret, renderers );
	return ret;
};me.refresh = function ( ) {me.doit();};
me.setResult = function( res, done ) {outputs.format300.SetValue(res.format300);outputs.format150.SetValue(res.format150);outputs.pixel150.SetValue(res.pixel150);outputs.pixel300.SetValue(res.pixel300);if (done) { handler.onStop();if ( PCF.requestFormulaUpdate( false ) ) { var mjx = window.MathJax; mjx.Hub.Queue(["Typeset",mjx.Hub]);};}};
function preprocess( p, cb ) {cb(p,true);}var inputValues = null;me.doit = function ( ) {preprocess(inputValues, function( p, sync, cont ) {if ( cont ) me.progressControl.repeat();try {me.changeDisplayOptions();
var res = Planetcalc.Calculate1686(p);if ( res ) { if ( me.result ) { for( var n in res ) me.result[n] = res[n]; } else me.result = res; }if ( me.result ) me.setResult( me.result, true );} catch( e ) {
	handler.onStop(e);
}});};me.changeDisplayOptions = function () {me.calculateDisplay(new DisplayWrapperInput(inputs.height), new DisplayWrapperInput(inputs.width), { GetValue:function() { return Planetcalc.Resources1686errors;}}, Planetcalc.data[0], new DisplayWrapper(outputs.format300), new DisplayWrapper(outputs.format150), new DisplayWrapper(outputs.pixel150), new DisplayWrapper(outputs.pixel300));dialog.layout();
}
me.calculateDisplay = function ( height, width, errors, formats, format300, format150, pixel150, pixel300 )
 {
};
},{calculate:"Calculate", stop:"Stop"});;
hd.initdialog(dlg);dlg.addHandler(hd);window.dialoghandlerv612229294e33a = hd;});</script><div id=user_data_1686><div class=tc id=ud_note1686><button class="c2 pc-btn-link ce"><i class=material-icons>  </i> Link</button><button class="c2 pc-btn-new"><i class=material-icons>  </i> Save</button><button class="c2 pc-btn-embed-wol"type=button><i class=material-icons>  </i> Widget</button></div><script>document.addEventListener("DOMContentLoaded", function(event) { window.udh_1686=new PCUserDataHandler( { calcid:1686,id:"user_data_1686"});});</script></div></div></div><p><p>The second calculator in this article finds the resulting pixels per inch value for a printed image and how many pixels were cropped during scaling.<p>Let's define the problem.<p>We have a photo print with known dimensions in centimeters, printed from a digital image with known dimensions in pixels. Usually, the aspect ratio of a printed image is not the same as the aspect ratio of digital image. The image is scaled during printing, but its aspect ratio remains constant. This leads to unwanted effects.<p>Look at the picture below <br><div style=text-align:center><img alt=photo2en.PNG class=je src=/users/2/1322254539.PNG title=photo2en.PNG></div><p><br> <br> We have two ways to scale: <br> first – scale with cropping out part of image <br> second – scale without cropping, but with empty spaces on the photo print. <br> Since the second looks ugly, I used the first.<p>Thus, we have to find the resulting image resolution in DPI, and how many pixels were cropped due to the difference in aspect ratio. The first one is easy – the dimension in pixels (width or height) that is not cropped is divided by the corresponding photo print dimension in inches. The second one is the difference between used pixels on the cropped dimension and the original digital image pixels.<p><div id=calculator1638></div><div class=pc-article-part><div class=u5><div class="w_ f8"id=dialogv612229293d608><div class="x_ j0"><div class="s8 t8"><a class=t_ href=https://planetcalc.com/1638/?license=1 target=_blank> <img alt="PLANETCALC, Pixels per inch"height=32 src=/img/32x32i.png width=32> </a><h4 class=y9>Pixels per inch</h4></div></div><div class="x_ _0"><div class="j4 g8"><input class=l4 id=dialogv612229293d608_width name=width value=55><label class="h3 i3"for=dialogv612229293d608_width>Image width (cm)</label><div class=_3></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv612229293d608_width>Width of printed image (cm)</div></div></div><div class="x_ _0"><div class="j4 g8"><input class=l4 id=dialogv612229293d608_height name=height value=40><label class="h3 i3"for=dialogv612229293d608_height>Image height (cm)</label><div class=_3></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv612229293d608_height>Height of printed image (cm)</div></div></div><div class="x_ _0"><div class="j4 g8"><input class=l4 id=dialogv612229293d608_pwidth name=pwidth size=12 value=4074><label class="h3 i3"for=dialogv612229293d608_pwidth>Width in px</label><div class=_3></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv612229293d608_pwidth>Width of digital image (pixels)</div></div></div><div class="x_ _0"><div class="j4 g8"><input class=l4 id=dialogv612229293d608_pheight name=pheight size=12 value=2715><label class="h3 i3"for=dialogv612229293d608_pheight>Height in px</label><div class=_3></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv612229293d608_pheight>Height of digital image (pixels)</div></div></div><div class="x_ j0"><div class=r8><button class="c2 g2 s_ pc-btn-calc"id=dialogv612229293d608_calculate type=button><span id=dialogv612229293d608_button_text> Calculate </span></button></div></div><div class="x_ j0"><div class=e8><div class="c8 m0 t0"id=dialogv612229293d608__progress_ role=progressbar><div class=p0></div><div class=q0></div><div class="n0 r0"><span class=o0> </span></div><div class="n0 s0"><span class=o0> </span></div></div></div></div><div class="x_ j0"><div></div><div class="n4 x"><div class="e4 c4"id=hlp_default_dialogv612229293d608></div></div></div><div class="x_ a0"><div class=o8>Printed image aspect ratio</div><div class="pc-output-value p8"id=dialogv612229293d608_ratio> </div></div><div class="x_ a0"><div class=o8>Digital image aspect ratio</div><div class="pc-output-value p8"id=dialogv612229293d608_pratio> </div></div><div class="x_ a0"><div class=o8>Used width (pixels)</div><div class="pc-output-value p8"id=dialogv612229293d608_uwidth> </div></div><div class="x_ a0"><div class=o8>Used heigth (pixels)</div><div class="pc-output-value p8"id=dialogv612229293d608_uheight> </div></div><div class="x_ a0"><div class=o8>Printed image resolution (DPI or PPI)</div><div class="pc-output-value p8"id=dialogv612229293d608_resolution> </div></div><div class="x_ j0"><div class=b2><div class=pc-calc-footer><div class="ba u8"></div></div></div></div></div><script>function Dialogv612229293d608() {var me = this;me.id = "dialogv612229293d608";me.GetElement = function () { return document.getElementById( me.id ); };me.GetEventHandlerName = function () { return "dialoghandlerv612229293d608"; };this.dialog_controls = [new DialogInput("width", this, new ValidatorNumber( false, true),new ElementAccessorNumber(),new ValidatorNumber( false, true)),new DialogInput("height", this, new ValidatorNumber( false, true),new ElementAccessorNumber(),new ValidatorNumber( false, true)),new DialogInput("pwidth", this, new ValidatorNumber( false, false),new ElementAccessorNumber(),new ValidatorNumber( false, false)),new DialogInput("pheight", this, new ValidatorNumber( false, false),new ElementAccessorNumber(),new ValidatorNumber( false, false)),new DialogInput("calculate", this, 0,new ElementAccessorOperation()),new DialogInput("_progress_", this, 0,new ElementAccessorDefault()),new DialogInput("", this, 0,new ElementAccessorDefault()),new DialogInput("ratio", this, 0,new ElementAccessorOutput()),new DialogInput("pratio", this, 0,new ElementAccessorOutput()),new DialogInput("uwidth", this, 0,new ElementAccessorOutput()),new DialogInput("uheight", this, 0,new ElementAccessorOutput()),new DialogInput("resolution", this, 0,new ElementAccessorOutput())];me.dialog_controls._all ={};me.dialog_controls.forEach( function( e ) { if (me[e.id]===undefined) me[e.id] = e; me.dialog_controls._all[e.id] = e;} );this.addHandler = function ( handler ) {this.dialog_controls.forEach(function(c) { c.addHandler( handler);});};this.SetValues = function ( values ) {this.dialog_controls.forEach(function(c) {if ( values[c.id]!==undefined ) { c.SetValue( values[c.id] ); }});};this.Clear = function ( ) {this.dialog_controls.forEach(function( c) { c.ResetValue();});};this.SetDefaultValues = function () { this.Clear();};this.GetValues = function () {var ret = {}; this.dialog_controls.forEach(function( c) { ret[c.id] = c.GetValue();});return ret;};this.Validate = function ( ) {for(var i=0;i<me.dialog_controls.length;++i) if (!me.dialog_controls[i].Validate()) return false; return true;};this.layout = function ( ) {}};document.addEventListener("DOMContentLoaded", function(event) {var dlg = new Dialogv612229293d608();
var hd = new CalculatorHandler(new function () {
var me = this;
me.id = 1638;
me.global = 1;
var outputs = {};
me.sinks={change:[],done:[]};
me.startOnLoad = 1;
me.infinite = 0;
var inputs = {};
var renderers = {};
var recordsets = {};
var diagrams = {};
var handler, dialog, refreshTimer;
var worker; var proxies; var stubs;
var outer = this;
var Planetcalc = new function() { 
var inner = this; var Planetcalc = inner; var cpcData = new CalcProgressData();var Calculate1638_cpc = new CalcProgressControl(cpcData);inner.Calculate1638 = function( ___inp___ ) {
var progressControl = Calculate1638_cpc;
var Calculate1638_result={};function  __impl__( __inp__ ) {

var width = __inp__["width"]===undefined?55:__inp__["width"];
var height = __inp__["height"]===undefined?40:__inp__["height"];
var pwidth = __inp__["pwidth"]===undefined?4074:__inp__["pwidth"];
var pheight = __inp__["pheight"]===undefined?2715:__inp__["pheight"];
var ratio = { "SetValue": function( v ) { Calculate1638_result["ratio"]=v; } };
var pratio = { "SetValue": function( v ) { Calculate1638_result["pratio"]=v; } };
var uwidth = { "SetValue": function( v ) { Calculate1638_result["uwidth"]=v; } };
var uheight = { "SetValue": function( v ) { Calculate1638_result["uheight"]=v; } };
var resolution = { "SetValue": function( v ) { Calculate1638_result["resolution"]=v; } };var tratio = width/height;
if (width > height)
	ratio.SetValue(tratio.toFixed(2));
else
	ratio.SetValue((1/tratio).toFixed(2));

var tpratio = pwidth/pheight;
if (pwidth > pheight)
	pratio.SetValue(tpratio.toFixed(2));
else
	pratio.SetValue((1/tpratio).toFixed(2));

if (tratio < tpratio) {
	resolution.SetValue( pheight/(height/2.54) );
	uheight.SetValue(pheight);
	uwidth.SetValue(pheight * tratio);
} else {
	resolution.SetValue( pwidth/(width/2.54) );
	uwidth.SetValue(pwidth);
	uheight.SetValue(pwidth/tratio);
}

};
 __impl__(___inp___); if ( progressControl.completed() ) { progressControl.context = null; } return Calculate1638_result;};inner.main=inner.Calculate1638;inner.progressControl = Calculate1638_cpc; inner.init = function(){inner.progressControl.onDataReady();};};me.adapter = null;function startLoad() {
me.progressControl.addEventListener("ready",handler.onReady);
Planetcalc.init(); }
me.timeout = 1500;
me.auto = 1;
me.init = function ( h, dlg ) { var o; handler=h;dialog =dlg;me.progressControl = Planetcalc.progressControl;var n; var fn;n='width';if ( dlg[n] ) { inputs[n] = dlg[n]; }n='height';if ( dlg[n] ) { inputs[n] = dlg[n]; }n='pwidth';if ( dlg[n] ) { inputs[n] = dlg[n]; }n='pheight';if ( dlg[n] ) { inputs[n] = dlg[n]; }o = dlg.ratio;outputs[o.id] =o;o.formatter =new FormatterSame( );o = dlg.pratio;outputs[o.id] =o;o.formatter =new FormatterSame( );o = dlg.uwidth;outputs[o.id] =o;o.formatter =new FormatterNumber( 0,0,0,"R" );o = dlg.uheight;outputs[o.id] =o;o.formatter =new FormatterNumber( 0,0,0,"R" );o = dlg.resolution;outputs[o.id] =o;o.formatter =new FormatterNumber( 0,0,0,"R" );startLoad();};
me.stop = function() {
	if (worker) worker.postMessage({type:"stop"}); 
	else Planetcalc.progressControl.stop();
};
me.start = function() {
	handler.onStart();
	if (worker) {
		me.changeDisplayOptions();
		worker.postMessage({type:"start",inputs:proxies(dialog.GetValues())});
	} else {
inputValues = {"width":Number(inputs.width.GetValue()), "height":Number(inputs.height.GetValue()), "pwidth":Number(inputs.pwidth.GetValue()), "pheight":Number(inputs.pheight.GetValue())};	Planetcalc.progressControl.clear();
		me.result = null;
		me.refresh();
	}
};me.getInputs = function() {
	return inputs;
};
function objectValues( a, o ) {
	for(var n in o) {
		a.push( o[n] );
	}
}
me.getOutputs = function() {
	var ret = [];
	objectValues( ret, outputs );
	objectValues( ret, diagrams );
	objectValues( ret, renderers );
	return ret;
};me.refresh = function ( ) {me.doit();};
me.setResult = function( res, done ) {outputs.ratio.SetValue(res.ratio);outputs.pratio.SetValue(res.pratio);outputs.uwidth.SetValue(res.uwidth);outputs.uheight.SetValue(res.uheight);outputs.resolution.SetValue(res.resolution);if (done) { handler.onStop();if ( PCF.requestFormulaUpdate( false ) ) { var mjx = window.MathJax; mjx.Hub.Queue(["Typeset",mjx.Hub]);};}};
function preprocess( p, cb ) {cb(p,true);}var inputValues = null;me.doit = function ( ) {preprocess(inputValues, function( p, sync, cont ) {if ( cont ) me.progressControl.repeat();try {me.changeDisplayOptions();
var res = Planetcalc.Calculate1638(p);if ( res ) { if ( me.result ) { for( var n in res ) me.result[n] = res[n]; } else me.result = res; }if ( me.result ) me.setResult( me.result, true );} catch( e ) {
	handler.onStop(e);
}});};me.changeDisplayOptions = function () {me.calculateDisplay(new DisplayWrapperInput(inputs.width), new DisplayWrapperInput(inputs.height), new DisplayWrapperInput(inputs.pwidth), new DisplayWrapperInput(inputs.pheight), new DisplayWrapper(outputs.ratio), new DisplayWrapper(outputs.pratio), new DisplayWrapper(outputs.uwidth), new DisplayWrapper(outputs.uheight), new DisplayWrapper(outputs.resolution));dialog.layout();
}
me.calculateDisplay = function ( width, height, pwidth, pheight, ratio, pratio, uwidth, uheight, resolution )
 {
};
},{calculate:"Calculate", stop:"Stop"});;
hd.initdialog(dlg);dlg.addHandler(hd);window.dialoghandlerv612229293d608 = hd;});</script><div id=user_data_1638><div class=tc id=ud_note1638><button class="c2 pc-btn-link ce"><i class=material-icons>  </i> Link</button><button class="c2 pc-btn-new"><i class=material-icons>  </i> Save</button><button class="c2 pc-btn-embed-wol"type=button><i class=material-icons>  </i> Widget</button></div><script>document.addEventListener("DOMContentLoaded", function(event) { window.udh_1638=new PCUserDataHandler( { calcid:1638,id:"user_data_1638"});});</script></div></div></div><div class=ads-inline><div id=div-gpt-ad-1635710065-2><script>googletag.cmd.push(function() { googletag.display("div-gpt-ad-1635710065-2");});</script></div></div><p></div></div><div class=ke id=copied_msg><div class=me><div class=ne>URL copied to clipboard</div></div></div><div class="social social-share ee"><div class=share-mode><div class="t9 share-switch"><div class=x6><div class=z6></div><div class=b7><div class=_7><input class=a7 id=share_data_md type=checkbox></div></div></div><label for=share_data_md> share my calculation</label></div><div class="share_data_msg z"></div></div><div class=share-buttons><a class="pc-social-share oc pc"rel="noopener nofollow"data-origin=pc href=https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fplanetcalc.com%2F1688%2F target=_blank> <span class=material-icons>  </span> </a><a class="pc-social-share oc qc"rel="noopener nofollow"data-origin=qc href=https://twitter.com/intent/tweet?text=Online%20calculator%3A%20Digital%20image%20size%20in%20pixels%20and%20photo%20print%20size&url=https%3A%2F%2Fplanetcalc.com%2F1688%2F target=_blank> <span class=material-icons>  </span> </a><a class="pc-social-share oc r_"rel="noopener nofollow"data-origin=r_ href=mailto:?subject=Online%20calculator%3A%20Digital%20image%20size%20in%20pixels%20and%20photo%20print%20size&body=https%3A%2F%2Fplanetcalc.com%2F1688%2F> <span class=material-icons>  </span> </a></div><div class="share-url-text x"><div class=j4><input class=l4 readonly><div class=_3></div></div><div class=n4><div class="e4 c4"id=share_data_md_hlp>Everyone who receives the link will be able to view this calculation</div></div><button class="c2 mc"type=button><span class=f2> Copy </span></button><div style=clear:both></div></div></div><div class=similar-calc><h4>Similar calculators</h4><ul><li>• <a title="Inches to pixels and pixels to inches converter"href=/8608/> Inches to pixels and pixels to inches converter </a><li>• <a title="Miles per gallon to liters per kilometer fuel consumption converter"href=/4357/> Miles per gallon to liters per kilometer fuel consumption converter </a><li>• <a title="Conversion of pounds into inches"href=/348/> Conversion of pounds into inches </a><li>• <a title="Adjusting picture/pixel sizes proportionally"href=/8989/> Adjusting picture/pixel sizes proportionally </a><li>• <a title="Display aspect ratio and dimensions"href=/1890/> Display aspect ratio and dimensions </a><li>• <a class=vc href=/search/?section=255> Units converters section ( 23 calculators ) </a></ul></div><div class=b><i class=material-icons>  </i>   <a class="vc bc"href=/search/?tag=1556> converters </a><a class="vc xb"href=/search/?tag=1569> dots per inch </a><a class="vc xb"href=/search/?tag=1554> DPI </a><a class="vc xb"href=/search/?tag=855> inch </a><a class="vc zb"href=/search/?tag=1549> photo </a><a class="vc xb"href=/search/?tag=1568> pixel </a><a class="vc xb"href=/search/?tag=1557> pixels </a><a class="vc xb"href=/search/?tag=1570> pixels per inch </a><a class="vc xb"href=/search/?tag=1555> PPI </a><a class="vc xb"href=/search/?tag=1552> print </a><a class="vc xb"href=/search/?tag=1553> resolution </a><a class="vc xb"href=/search/?tag=1550> size </a><a class="vc ac"href=/search/?section=255> Units converters </a></div><div class=b2><span class=u8> <a href=https://planetcalc.com/1688/?license=1 target=_blank> <i class=material-icons>  </i> <i class=material-icons>  </i> </a> </span> PLANETCALC, Digital image size in pixels and photo print size <div class="ba u8"></div></div><div class="p9 qb author-date v"><i class=material-icons>  </i><a href=/1688/?thanks=1> Timur </a><i class=material-icons>  </i><span class=nav-created> 2020-12-16 13:03:34 </span></div><script>function showAvInitials( i ) {
			i.style.display="none";
			var d = i.parentNode;
			var bg = d.getAttribute("data-bg");
			d.style.backgroundColor = bg;
			var e = d.getElementsByClassName("tb");
			if ( e.length ) {
				e[0].style.display="inline";
			}
		}
		function CommentAvatarFormatter( formatter ) {
			var colors = [ "#D32F2F", "#C2185B", "#7B1FA2", "#512DA8", "#303F9F", "#1976D2", "#0288D1", "#0097A7", "#00796B", "#388E3C", "#689F38", "#AFB42B", "#FBC02D", "#FFA000", "#F57C00", "#E64A19", "#5D4037", "#455A64"];
	this.Format = function ( colname, record ) {
		var ret = '<div class="' + "sb" + '"';
			var name = record.nickname;
			if ( !name ) name = 'Unknown'; else name = name.toString();
			var hash = 0;
			for(var i =0 ;i<name.length;++i) {
				hash+=name.charCodeAt(i);
			}
			var color = colors[ hash%colors.length];
			var namearr = name.split(' ');
			var abbr ='';
			for(var i=0;i<namearr.length && i<2 ;++i) {
				if ( namearr[i].length) {
					abbr+=namearr[i].substr(0,1);
				}
			}
		if ( record.photo ) {
			ret+='data-bg="' + color + '"><img src="' + record.photo + '" alt="' + (record.nickname && record.nickname.replace?record.nickname.replace('"',"'"):'') + '" onerror="showAvInitials(this);">';
		} else {
			ret+=' style="background-color:' + color + '">';
		}
		ret+='<span class="' + "tb" + '"' + (record.photo?' style="display:none;"':'') + '>' + abbr.toUpperCase()  + '</span>';
		ret+='</div>';
		return ret;
	}
}</script><div id=comments><div class="w_ f8"id=dialogv617ef47193bcd><div class="x_ j0"><div class=s8><h4 class=y9>Comments</h4></div></div><div class="x_ _0"><div class=placeholder id=dialogv617ef47193bcd_group_sofia></div></div><div class="x_ g0"><div class="w_ f8"id=dialogv617ef47193bcd_group_comments><div class="x_ j0"><div class="j4 m4 g8"><textarea class=l4 cols=80 id=dialogv617ef47193bcd_message rows=5></textarea><div class=c3><div class=e3></div><div class=f3><label class=h3 for=dialogv617ef47193bcd_message>Your message</label></div><div class=g3></div></div></div><div class=n4><div class="e4 c4"id=hlp_dialogv617ef47193bcd_message></div></div></div><div class="x_ j0"><div class=t9><div class=x6><div class=z6></div><div class=b7><div class=_7><input class=a7 id=dialogv617ef47193bcd_notify type=checkbox></div></div></div><label for=dialogv617ef47193bcd_notify>Subscribe to comments notifications</label></div><div class=n4><div class="e4 c4"id=hlp_dialogv617ef47193bcd_notify></div></div></div></div></div><div class="x_ j0"><div class=e8><div class="c8 m0 t0"id=dialogv617ef47193bcd_progress role=progressbar><div class=p0></div><div class=q0></div><div class="n0 r0"><span class=o0> </span></div><div class="n0 s0"><span class=o0> </span></div></div></div></div><div class="r8 x_ j0"><button class="c2 g2"id=dialogv617ef47193bcd_send type=button><span class=f2> Send </span></button></div><div class="x_ j0"><div class=placeholder id=dialogv617ef47193bcd_comments></div></div><input id=dialogv617ef47193bcd_messagebox type=hidden value=1692></div><script>function Dialogv617ef47193bcd() {var me = this;me.id = "dialogv617ef47193bcd";me.GetElement = function () { return document.getElementById( me.id ); };me.GetEventHandlerName = function () { return "dialoghandlerv617ef47193bcd"; };this.dialog_controls = [new DialogInput("group_sofia", this, 0,new ElementAccessorDefault()),new DialogInput("group_comments", this, 0,new ElementAccessorDefault()),new DialogInput("message", this, new ValidatorTextSize( 0,5000 ),new ElementAccessorText()),new DialogInput("notify", this, 0,new ElementAccessorCheckbox()),new DialogInput("messagebox", this, 0,new ElementAccessorHidden()),new DialogInput("progress", this, 0,new ElementAccessorDefault()),new DialogInput("send", this, 0,new ElementAccessorOperation()),new DialogInput("comments", this, 0,new ElementAccessorDefault())];me.dialog_controls._all ={};me.dialog_controls.forEach( function( e ) { if (me[e.id]===undefined) me[e.id] = e; me.dialog_controls._all[e.id] = e;} );this.addHandler = function ( handler ) {this.dialog_controls.forEach(function(c) { c.addHandler( handler);});};this.SetValues = function ( values ) {this.dialog_controls.forEach(function(c) {if ( values[c.id]!==undefined ) { c.SetValue( values[c.id] ); }});};this.Clear = function ( ) {this.dialog_controls.forEach(function( c) { c.ResetValue();});};this.SetDefaultValues = function () { this.Clear();};this.GetValues = function () {var ret = {}; this.dialog_controls.forEach(function( c) { ret[c.id] = c.GetValue();});return ret;};this.Validate = function ( ) {for(var i=0;i<me.dialog_controls.length;++i) if (!me.dialog_controls[i].Validate()) return false; return true;};this.layout = function ( ) {}};document.addEventListener("DOMContentLoaded", function(event) {var dlg = new Dialogv617ef47193bcd();
var hd = function() {var dialogv617ef47193bcd_comments_init_data="";var dialogv617ef47193bcd_comments=new AjaxSetMessages(dialogv617ef47193bcd_comments_init_data, "/service/comments/", "dialogv617ef47193bcd_comments", "Loading...");dialogv617ef47193bcd_comments.Renderer.AddColumn("posted","Created",new RecordFieldFormatter( new FormatterTimeSpan() ));dialogv617ef47193bcd_comments.Renderer.AddColumn("avatar","",new CommentAvatarFormatter());dialogv617ef47193bcd_comments.Renderer.AddColumn("created","",new RecordFieldFormatter( new FormatterPrefix("Registered: ", new FormatterDateOnly()) ));dialogv617ef47193bcd_comments.Renderer.AddColumn("posts","",new RecordFieldFormatter( new FormatterPrefix("Posts: ", null) ));dialogv617ef47193bcd_comments.Render();dialogv617ef47193bcd_comments.qc.messagebox=1692;dialogv617ef47193bcd_comments.qc.language="en";dialogv617ef47193bcd_comments.qc.parent=0; var ch= new CommentFormHandler("https://planetcalc.com/1688/?loginrequirednow=1&language_select=en",false);ch.setTable(dialogv617ef47193bcd_comments); return ch;}();;
hd.initdialog(dlg);dlg.addHandler(hd);});</script></div></div><div class="x_ _0"><div class=right_fix id=top-right-card></div><div class="cc right-ads"><div id=div-gpt-ad-1635710065-3><script>googletag.cmd.push(function() { googletag.display("div-gpt-ad-1635710065-3");});</script></div></div><div id=bottom-right-anchor></div><div id=bottom-right-card><div class="social social-share ce"><h4 class=share-title>Share <span class=share-subject> this page </span></h4><div class=share-mode><div class="t9 share-switch"><div class=x6><div class=z6></div><div class=b7><div class=_7><input class=a7 id=share_data type=checkbox></div></div></div><label for=share_data> share my calculation</label></div><div class="share_data_msg z"></div></div><div class=share-buttons><a class="pc-social-share oc pc"rel="noopener nofollow"data-origin=pc href=https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fplanetcalc.com%2F1688%2F target=_blank> <span class=material-icons>  </span> </a><a class="pc-social-share oc qc"rel="noopener nofollow"data-origin=qc href=https://twitter.com/intent/tweet?text=Online%20calculator%3A%20Digital%20image%20size%20in%20pixels%20and%20photo%20print%20size&url=https%3A%2F%2Fplanetcalc.com%2F1688%2F target=_blank> <span class=material-icons>  </span> </a><a class="pc-social-share oc r_"rel="noopener nofollow"data-origin=r_ href=mailto:?subject=Online%20calculator%3A%20Digital%20image%20size%20in%20pixels%20and%20photo%20print%20size&body=https%3A%2F%2Fplanetcalc.com%2F1688%2F> <span class=material-icons>  </span> </a></div><div class="share-url-text x"><div class=j4><input class=l4 readonly><div class=_3></div></div><div class=n4><div class="e4 c4"id=share_data_hlp>Everyone who receives the link will be able to view this calculation</div></div><button class="c2 mc"type=button><span class=f2> Copy </span></button><div style=clear:both></div></div></div></div><div class="ads-sticker right-ads"><div id=div-gpt-ad-1635710065-4><script>googletag.cmd.push(function() { googletag.display("div-gpt-ad-1635710065-4");});</script></div></div></div></div></div><script>var shiftMax = 0;
document.addEventListener('DOMContentLoaded', function(){ 
	shiftMax = $('#left-block').offset().top-$('#bottom-right-anchor').offset().top+$('#left-block').height()-$('#bottom-right-card').height();
	window.addEventListener('scroll',sticky_update, {passive:true});
	sticky_update();
	showStoreRef();
	
var sharer = new PSS.Sharer("my calculation",'Calculation data size is %1. To share your calculation please <a class="save_data_link" href="#">save the calculation data</a> to our server storage.');});

function sticky_update() {
	var window_top = $(window).scrollTop();
	var off = $('#bottom-right-anchor').offset();
	var shift = window_top+56 - off.top;
	if (shift>0 && off.left>400 && shiftMax>0) {
		$('#bottom-right-anchor').height(shift<shiftMax?shift:shiftMax);
	} else {
		$('#bottom-right-anchor').height(0);
	}
}

function getMobileOperatingSystem() {
	var userAgent = navigator.userAgent || navigator.vendor || window.opera;
	if (/android/i.test(userAgent)) {
		return "Android";
    }
    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
        return "iOS";
    }
    return "unknown";
}
function showStoreRef() {
	if ( $(".wb").length && !$(".wb").is(":visible") ) {
	switch( getMobileOperatingSystem()) {
	case 'Android':{
		$(".pc-storeref-android").removeClass("cc");
	} break;
	case 'iOS':{
		$(".pc-storeref-ios").removeClass("cc");
	} break;
	}	
}
var savedData = [];function forEachCalc( func ) {
	if ( window.CurrentPageCalculators ) {
		for( var i =0;i<window.CurrentPageCalculators.length;++i ) {
			func( window.CurrentPageCalculators[i] );
		}
	}
}

forEachCalc( function ( calc ) {
	var sd = savedData[calc.CalculatorID ];
	if ( sd ) {
		calc.setProfile(sd,false);
}});

}</script></div><div class=horizontal_divider></div><footer class=t7><ol><li><h4>About</h4><li><a href=/about/> The project </a><li><a class=inline href=//twitter.com/planetcalc rel=nofollow> <i class=material-icons>  </i> </a></ol><ol><li><h4>Terms</h4><li><a href=/terms/> Terms of usage </a><li><a href=/privacy/> Privacy Policy </a></ol><ol><li><h4>Calculators</h4><li><a href=/all/> All online calculators </a></ol><ol><li><h4>Community</h4><li><a href=/comments/> All discussions </a><li><a href=/allrequests/> All requests </a><li><a href=/sofia/> Sofia's gallery </a><li><a href=/dev/> For developers </a></ol><ol><li><h4>Language</h4><li><a href=# onclick=document.location.href='https://de.planetcalc.com/1688/?language_select=de' title=Deutsch> Deutsch </a><li><a href=# onclick=document.location.href='https://planetcalc.com/1688/?language_select=en' title=English> English </a><li><a href=# onclick=document.location.href='https://es.planetcalc.com/1688/?language_select=es' title=Español> Español </a><li><a href=# onclick=document.location.href='https://fr.planetcalc.com/1688/?language_select=fr' title=Français> Français </a><li><a href=# onclick=document.location.href='https://pt.planetcalc.com/1688/?language_select=pt' title=Português> Português </a><li><a href=# onclick=document.location.href='https://planetcalc.ru/1688/?language_select=ru' title=Русский> Русский </a></ol><ol><li><h4>Personal section</h4><li><a href=/personal/> Login </a></ol><div class=pb>Copyright © PlanetCalc Version: 3.0.4073.0</div></footer><script>if ( PCL===undefined ) {var PCL = {};}
	PCL.language_id='en';
PCL.minutes_ago_one="%1 minute ago";PCL.minutes_ago_other="%1 minutes ago";PCL.hours_ago_one="%1 hour ago";PCL.hours_ago_other="%1 hours ago";PCL.days_ago_one="%1 day ago";PCL.days_ago_other="%1 days ago";PCL.months_ago_one="%1 month ago";PCL.months_ago_other="%1 months ago";PCL.years_ago_one="%1 year ago";PCL.years_ago_other="%1 years ago";PCL.all="All";PCL.x_of_y="%1 of %2";PCL.items_per_page="Items per page";PCL.next_page="Next page";PCL.prev_page="Previous page";PCL.err_data_too_long="Calculation data size is %1. Your calculation data is too large. We allow %2 only.";PCL.userdata="The caclulation has been saved %2 by <a href=\"/personal/authorinfo/?id=%3\" rel=\"nofollow\">%1</a>";	PCL.yes="yes";PCL.no="no";	PCL.err_must_be_at_least_x_chars_long="Must be at least %1 characters long.";PCL.err_must_be_less_or_equal_x_chars="Must be fewer than %1 characters long.";	PCL.err_invalid_number="Number expected.";PCL.err_invalid_positive_number="Positive number expected.";PCL.err_invalid_integer_number="Integer expected.";PCL.err_invalid_integer_positive_number="Positive integer expected.";PCL.err_complex_not_allowed="Complex number is not allowed.";PCL.err_fraction_not_allowed="Fraction is not allowed.";		PCL.pluralCodes = ['zero','one','two','few','many'];
	PCL.ordinalIR = function( n ) {
		var i = n, w=0,f=0,t=0,v=0;
		if ((n%10)==1 && (n%100)!=11) return PCL.pluralCodes[1];if ((n%10)==2 && (n%100)!=12) return PCL.pluralCodes[2];if ((n%10)==3 && (n%100)!=13) return PCL.pluralCodes[3];return "other";	}
	PCL.cardinalIR = function( n ) {
		var i = n, w=0,f=0,t=0,v=0;
		if (v==0 && i==1) return PCL.pluralCodes[1];return "other";	}
	PCL.getOrdinal = function(n){
		return PCL['ordinal_' + PCL.ordinalIR( n )];
	}</script><script crossorigin src=https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js></script><script src=/lib/min/4070/pla_0_4070.js></script><script>PLANETCALC.init();</script>