var advanced_ads_pro_visitor_conditions = {"referrer_cookie_name":"advanced_ads_pro_visitor_referrer","referrer_exdays":"365","page_impr_cookie_name":"advanced_ads_page_impressions","page_impr_exdays":"3650"};
var essb_settings = {"ajax_url":"https:\/\/www.lightstalking.com\/wp-admin\/admin-ajax.php","essb3_nonce":"b59c54b5e1","essb3_plugin_url":"https:\/\/www.lightstalking.com\/wp-content\/plugins\/easy-social-share-buttons3","essb3_stats":true,"essb3_ga":false,"essb3_ga_ntg":false,"blog_url":"https:\/\/www.lightstalking.com\/","post_id":"458371"};
Film photography came into my life after I learned the nuts and bolts of digital photography, at least at a serious level. When I was a kid I remember going with my parents to the lab and waiting for a couple of days in order to actually see the photos. I also remember their warnings […]
You have just bought a drone. You take it out to your local beauty spot, and after a little practice, fly it up to its maximum legal altitude and start snapping away. Excited, you head home, upload your images, and start sorting through them in Lightroom. Within a few moments, a slight wave of concern […]
Sub-framing is one of the hardest compositional approaches I’ve experienced in my whole life! By itself, the framing of an image is already challenging, now imagine composing within another composition guideline! Well, this Inception-like idea is exactly what this week’s photography challenge is all about. Tersha is quite aware of all the talent roaming around […]
If you have been a reader of Light Stalking for a while, you might remember that way back in 2012, I did a road trip across Europe from London to our home in Odesa, Ukraine. During that trip I did several photographic stock shoots in some beautiful locations en route, including Budapest and the amazing […]
There is a well-known acronym called KISS, Keep It Simple, Stupid. Created by the US Navy in the 60s, this tag could also be applied to modern-day photography. Adobe’s Lightroom is probably the widest-used photographic app there is. Its appeal is the seamless integration of image management and nondestructive editing. I have used Lightroom Classic […]
One of the very first images that I took with my new (to me) Fujifilm GFX50s was the one you see below. It was part of a series of photos shot pre and post-sunrise shots taken on the banks of the River Tyne in September 2023. The photo is, in my opinion, one of the […]
If you are a curious person, passionate about trying to read images, then this is something you’ve already felt before. Sometimes, images come with an extra spiciness we can’t ignore. That fascinating extra of drama that triggers imagination in a seamless way. Of course, we are talking about vignettes, those that can be faded or […]
Traveling with your camera is one of the most rewarding things that you can do in photography. The thrill of new places, different cultures, and interesting light are strong lures to any photographer. The problem is, what to take? The urge will be to take as much of your heavy camera gear on the plane […]
After more than a decade, I clearly remember my first attempts at capturing silhouettes with my camera! There’s something poetic about the golden colours of the sun reducing our mere existence to a flat, yet recognisable, representation of ourselves. Today we bring you some of the most aesthetic responses to Tersha’s weekly challenge on our […]
We have done the legwork in finding the best photo printer in 2022 for your needs in this in-depth article. We have endeavored to find the things to look out for with printers and why you will want to take a look at our overall winner.
If not essential, then drones are certainly an important part of any photographer’s tool kit. The freedom afforded by aerial photography allows us to move our cameras in three planes and a significant distance from our positions, all whilst still monitoring a live feed. A camera drone can allow us to shoot both amazing stills […]
Most hard cases are great for providing safety to your gear. The camera equipment is a big investment because of its high price and you should choose it wisely. In this article, we will cover the 11 best and most versatile camera hard cases that will keep your gear protected.
Uncover the timeless beauty of portraits through vintage lenses. Discover which old-school glass can enhance your photography. Click to find the best vintage portrait lenses!
Keep your camera lenses spotless! Discover the best lens cleaning kits for crystal-clear photography. Click for tips on choosing and using the right kit!
You have had a passing interest in photography for a while. Maybe you shoot with a smart phone and want to step up to a bigger camera. The question is, what camera? The best camera for beginners to photography does not actually exist. There are, in fact many best cameras, each has it own advantages […]
Learning how to photograph the moon has long been one of the greatest joys of a photographer’s journey in learning. For centuries the moon has captivated people, given direction and provided hours of enjoyment and wonderment. Being the brightest object in the night sky, it’s something photographers of all levels can shoot, however, it does take planning and preparation to accomplish. In this article, we will look at how to photograph the moon along with some amazing moon images in the end for inspiration.
I don’t recall ever meeting anyone who claimed to not be fascinated to some degree by the night sky. There’s just something hypnotic about gazing upon objects that are billions of years old and light years away, yet so many people feel a rather close affinity with these distant bodies. Learning how to photograph the […]
A great food photograph can do a lot of things! It can make a viewer hungry, it can convince a diner to order a dish and it can sell a hell of a lot of food and recipe books. As an amateur or professional food photographer, knowing how to photograph food to get great results […]
Astronomy photography (astrophotography) is probably one of the most difficult types of photography that can be undertaken by the amateur photographer. It is also one of the most inspirational types of photography and is always immensely popular. Luckily for us, some amateur photographers still take the time to equip and train themselves and so are […]
Boudoir photography sessions have become extremely popular in the last ten years, along with maternity photo sessions. The reason behind this is possibly the fact that modern women are getting more and more confident about their bodies, no matter their shape and size. There are so many women of all ages and backgrounds who are […]
A headshot is a type of portrait photo which shows a person’s face and includes their shoulders as well. Even though photographing headshots seems pretty easy and straightforward, there are some tricks you need to know in order to make your clients truly satisfied with your work. Headshots are really important because they are usually […]
No matter what, one thing holds true for sure – wedding photography has to be extraordinary! Beautiful, emotional and in a way, magical. Here is a technical guide on how to capture those wonderful moments.
Baby photography is one of the most rewarding and, at the same time, most challenging genres of portraiture. It’s not easy to get those perfect baby shots you often see on Instagram and Pinterest – it takes a lot of time and practice. Babies are unpredictable, they grow fast, and on top of that, they […]
If you are just starting your photography journey, here is a beginners guide to photography, including some of the fundamentals, you will encounter as you take your first step.
( $ => {
/**
* Displays toast message from storage, it is used when the user is redirected after login
*/
if ( window.sessionStorage ) {
$( window ).on( 'tcb_after_dom_ready', () => {
const message = sessionStorage.getItem( 'tcb_toast_message' );if ( message ) {
tcbToast( sessionStorage.getItem( 'tcb_toast_message' ), false );
sessionStorage.removeItem( 'tcb_toast_message' );
}
} );
}/**
* Displays toast message
*
* @param {string} message - message to display
* @param {Boolean} error - whether the message is an error or not
* @param {Function} callback - callback function to be called after the message is closed
*/
function tcbToast( message, error, callback ) {
/* Also allow "message" objects */
if ( typeof message !== 'string' ) {
message = message.message || message.error || message.success;
}
if ( ! error ) {
error = false;
}
TCB_Front.notificationElement.toggle( message, error ? 'error' : 'success', callback );
}
} )( typeof ThriveGlobal === 'undefined' ? jQuery : ThriveGlobal.$j );
var advanced_ads_cookies = {"cookie_path":"\/","cookie_domain":""};
var advadsCfpInfo = {"cfpExpHours":"3","cfpClickLimit":"3","cfpBan":"7","cfpPath":"","cfpDomain":"www.lightstalking.com"};
var beloadmore = {"url":"https:\/\/www.lightstalking.com\/wp-admin\/admin-ajax.php","query":{"post__not_in":[458371],"category_name":false,"posts_per_page":3}};
var tve_dash_front = {"ajaxurl":"https:\/\/www.lightstalking.com\/wp-admin\/admin-ajax.php","force_ajax_send":"1","is_crawler":"","recaptcha":[],"post_id":"458371"};
var TVE_Ult_Data = {"ajaxurl":"https:\/\/www.lightstalking.com\/wp-admin\/admin-ajax.php","ajax_load_action":"tve_ult_ajax_load","conversion_events_action":"tve_ult_conversion_event","shortcode_campaign_ids":[],"matched_display_settings":[],"campaign_ids":[],"post_id":458371,"is_singular":true,"tu_em":"","evergreen_redirects":[]};
(function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async=true;; po.src = 'https://www.lightstalking.com/wp-content/plugins/easy-social-share-buttons3/lib/modules/conversions-pro/assets/share-conversions-tracker.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();(function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async=true;; po.src = 'https://www.lightstalking.com/wp-content/plugins/easy-social-share-buttons3/assets/modules/pinterest-pro.min.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();(function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async=true;; po.src = 'https://www.lightstalking.com/wp-content/plugins/easy-social-share-buttons3/assets/modules/subscribe-forms.min.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();(function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async=true;; po.src = 'https://www.lightstalking.com/wp-content/plugins/easy-social-share-buttons3/assets/js/essb-core.min.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
var essb_handle_stats = function(oService, oPostID, oInstance) { var element = jQuery('.essb_'+oInstance); var instance_postion = jQuery(element).attr("data-essb-position") || ""; var instance_template = jQuery(element).attr("data-essb-template") || ""; var instance_button = jQuery(element).attr("data-essb-button-style") || ""; var instance_counters = jQuery(element).hasClass("essb_counters") ? true : false; var instance_nostats = jQuery(element).hasClass("essb_nostats") ? true : false; if (instance_nostats) { return; } var instance_mobile = false; if( (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i).test(navigator.userAgent) ) { instance_mobile = true; } if (typeof(essb_settings) != "undefined") { jQuery.post(essb_settings.ajax_url, { 'action': 'essb_stat_log', 'post_id': oPostID, 'service': oService, 'template': instance_template, 'mobile': instance_mobile, 'position': instance_postion, 'button': instance_button, 'counter': instance_counters, 'nonce': essb_settings.essb3_nonce }, function (data) { if (data) { }},'json'); } }; var essb_log_stats_only = function(service, postId, position) { var instance_mobile = false; if( (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i).test(navigator.userAgent) ) { instance_mobile = true; } if (typeof(essb_settings) != "undefined") { jQuery.post(essb_settings.ajax_url, { 'action': 'essb_stat_log', 'post_id': postId, 'service': service, 'template': position, 'mobile': instance_mobile, 'position': position, 'button': position, 'counter': false, 'nonce': essb_settings.essb3_nonce }, function (data) { if (data) { }},'json'); } };
let ccwpDOMLoaded=!1;
let ccwp_loaded = false;
let resources_length=0;
let resources =undefined;
let is_last_resource = 0;
ccwpUserInteractions=["keydown","mousemove","wheel","touchmove","touchstart","touchend","touchcancel","touchforcechange"];
ccwpUserInteractions.forEach(function(e){
window.addEventListener(e,calculate_load_times);
});
function calculate_load_times() {
// Check performance support
if (performance === undefined) {
console.log("Performance NOT supported");
return;
}
// Get a list of "resource" performance entries
resources = performance.getEntriesByType("resource");
if (resources === undefined || resources.length <= 0) {
console.log("NO Resource performance records");
}
if(resources.length){
resources_length=resources.length;
}
for(let i=0; i < resources.length; i++) {
if(resources[i].responseEnd>0){
is_last_resource = is_last_resource + 1;
}
}
let uag = navigator.userAgent;
let gpat = /Google Page Speed Insights/gm;
let gres = uag.match(gpat);
let cpat = /Chrome-Lighthouse/gm;
let cres = uag.match(cpat);
let wait_till=300;
let new_ua = "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36";
let new_ua2 = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36";
if(gres || cres || uag==new_ua || uag==new_ua2){
wait_till = 3000;
}
if(is_last_resource==resources.length){
setTimeout(function(){
console.log("ccwpTriggerDelayedScripts timeout : "+wait_till);
ccwpTriggerDelayedScripts();
},wait_till);
}
}
window.addEventListener("load", function(e) {
console.log("load complete");
setTimeout(function(){
calculate_load_times();
},100);
});async function ccwpTriggerDelayedScripts() {
if(ccwp_loaded){ return ;}
ccwpPreloadStyles();
ccwpPreloadDelayedScripts();
ccwpLoadCss();
ccwpScriptLoading();
ccwp_loaded=true;
}
function ccwpPreloadStyles() {
let e = document.createDocumentFragment();
var cssEle = document.querySelectorAll("link[rel=ccwpdelayedstyle]");
for(let i=0; i <= cssEle.length;i++){
if(cssEle[i]){
cssEle[i].href = removeVersionFromLink(cssEle[i].href);
let r = document.createElement("link");
r.href = cssEle[i].href;
r.rel = "preload";
r.as = "style";
e.appendChild(r);
}
}
document.head.appendChild(e);
}
function ccwpPreloadDelayedScripts() {
var e = document.createDocumentFragment();
document.querySelectorAll("script[type=ccwpdelayedscript]").forEach(function(t) {
var n = removeVersionFromLink(t.getAttribute("src"));
if (n) {
t.setAttribute("src", n);
var r = document.createElement("link");
r.href = n, r.rel = "preload", r.as = "script", e.appendChild(r)
}
}), document.head.appendChild(e)
}
function ccwpScriptLoading(){
var jsEle = document.querySelectorAll("script[type=ccwpdelayedscript]");
jsEle.forEach(function(t) {
t.type = "text/javascript";
if(t.src)
{
t.src = removeVersionFromLink(t.src);
}
});
}function ccwpLoadCss(){
var cssEle = document.querySelectorAll("link[rel=ccwpdelayedstyle]");
for(let i=0; i <= cssEle.length;i++){
if(cssEle[i]){
cssEle[i].href = removeVersionFromLink(cssEle[i].href);
cssEle[i].rel = "stylesheet";
cssEle[i].type = "text/css";
}
}var cssEle = document.querySelectorAll("style[type=ccwpdelayedstyle]");
for(let i=0; i <= cssEle.length;i++){
if(cssEle[i]){
cssEle[i].type = "text/css";
}
}
}
function removeVersionFromLink(link)
{
if(ccwpIsValidUrl(link))
{
const url = new URL(ccwpFormatLink(link));
url.searchParams.delete("ver");
url.searchParams.delete("time");
return url.href;
}
else{
return link;
}
}
function ccwpIsValidUrl(urlString)
{
if(urlString){
var expression =/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
var regex = new RegExp(expression);
return urlString.match(regex);
}
return false;
}
function ccwpFormatLink(link)
{
let http_check=link.match("http:");
let https_check=link.match("https:");
if(!http_check && !https_check)
{
return location.protocol+link;
}
return link;
}