Jump to content

Making Dark, Gritty Photos in Photoshop


K4rMa

Recommended Posts

In today's Photoshop tutorial, you'll be learning a simple method of giving everyday photos a scary, gritty effect. This photo effect is extremely versatile, and can be used to come up with all sorts of results.

 

Step 1. Make sure you start with a photo that has lots of texture. Images that are mostly smooth textures (like water) probably will not become gritty or scary looking,

 

Example+1.jpg

 

The first thing we need to do is change your photo into a black and white. You can do this by opening your photo in photoshop and going to Enhance> Convert to Black and White. If your image already is, then yay for you! Skip to Step 2.

 

Image+1.jpg

 

Step 2. Now we will give your photo a grittier look. Apply Photoshop's Unsharp Mask by going to Enhance> Unsharp Mask. In the option window that pops up, play with the settings until you have a look you're happy with. It should increase the contrast and give it a gritty look, but make sure that you DON'T LOSE DETAILS. This is very important! If some areas of the photo are completely white or completely black where they shouldn't be, lower the Radius amount.

 

Image+2.jpg

 

Step 3. Create a new blank layer and fill it with a warm medium brown.

 

Image+3.jpg

 

Set the blending mode of the brown layer in the Layers Palette to "Color Burn".

 

Image+4.jpg

 

Step 4. Photoshop's "Color Burn" blending mode can create very dramatic effects, but you will also probably lose some of the details in your photo in shadows. To fix this, you can use the Dodge tool to lighten specific area of your image.

 

Choose the Dodge Brush (found in the lower left corner of Photoshop's interface). Choose a soft round brush, set the Range to "Shadows" and the Exposure to 10%.

 

Image+5.jpg

 

With the brown color layer still selected, use the tool to go over shadow areas to bring out details that may have been lost. Also use the tool on any areas that you'd like to be especially bright, like eyes. After i had used the tool, my brown layer looked something like this.

 

Image+9.jpg

 

And my overall image looked like this.

 

Image+7.jpg

 

Here is the image before and after I used the dodge tool, just to give you an idea of the effect the tool can have.

 

Image+8.jpg

 

And here are the Original and Final Images

 

Image+10.jpg

 

Depending on the photo, this tutorial will not necessarily create a menacing effect. Here are some other before and afters using this effect.

 

Example+4.jpg

 

Example+3.jpg

 

Example+2.jpg

 

Credits for sharing ~~>  ginismagic

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • You have to create the "voiced" handler in the core too, or at the very least make sure that the delimiter is underscore and not an empty space. Alternatively, you can try changing all references of the strings below to start with "voiced_", or remove the "voiced_" portion from the button bypass.   private static final String[] VOICED_COMMANDS = { "siege", "siege_gludio", "siege_dion", "siege_giran", "siege_oren", "siege_aden", "siege_innadril", "siege_goddard", "siege_rune", "siege_schuttgart" };
    • Hi maxcheaters, I recently added some code to my l2jacis revision and everything works fine with the .siege commands but when I click on the html options to open the registry I don't succeed!   registerHandler(new Castles());   package net.sf.l2j.gameserver.handler.voicedcommandhandlers;   import net.sf.l2j.Config; import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; import net.sf.l2j.gameserver.data.manager.CastleManager; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.model.entity.Castle; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SiegeInfo;   public class Castles implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { "siege", "siege_gludio", "siege_dion", "siege_giran", "siege_oren", "siege_aden", "siege_innadril", "siege_goddard", "siege_rune", "siege_schuttgart" };   @Override public boolean useVoicedCommand(String command, Player player, String target) { if (command.equals("siege") && Config.ENABLE_MENU) showHtm(player); else if (command.startsWith("siege_")) { if (player.getClan() != null && !player.isClanLeader()) { player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); return false; }   int castleId = 0; if (command.startsWith("siege_gludio") && Config.SIEGE_GLUDIO) castleId = 1; else if (command.startsWith("siege_dion") && Config.SIEGE_DION) castleId = 2; else if (command.startsWith("siege_giran") && Config.SIEGE_GIRAN) castleId = 3; else if (command.startsWith("siege_oren") && Config.SIEGE_OREN) castleId = 4; else if (command.startsWith("siege_aden") && Config.SIEGE_ADEN) castleId = 5; else if (command.startsWith("siege_innadril") && Config.SIEGE_INNADRIL) castleId = 6; else if (command.startsWith("siege_goddard") && Config.SIEGE_GODDARD) castleId = 7; else if (command.startsWith("siege_rune") && Config.SIEGE_RUNE) castleId = 8; else if (command.startsWith("siege_schuttgart") && Config.SIEGE_SCHUT) castleId = 9; else player.sendMessage("This Castle has been disabled");   Castle castle = CastleManager.getInstance().getCastleById(castleId); if ((castle != null) && (castleId != 0)) player.sendPacket(new SiegeInfo(castle)); } return true; }   private static void showHtm(Player player) { NpcHtmlMessage htm = new NpcHtmlMessage(0); htm.setFile(player.isLang() + "mods/menu/CastleManager.htm"); player.sendPacket(htm); }   @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } }     <button value="Giran" action="bypass voiced_siege_giran" width=75 height=22 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
    • totally agree, the problem started with professionals who made easy to open a server, specially interlude has been abused unstoppably since you can open a server with few clicks now days making fewer players for many servers, while back in time when "compile" was a secret and opening a server was going max players but true things are changing and this has become a job but dont lie everyone knows what is going on, lying is showing desperation, better go and work. i've worked with lots of people with kids that invest huge amounts of money into this and fail while they needed the money its an addiction.
  • Topics

×
×
  • Create New...