Category: Photography

  • Developmental Results

    I finished shooting my first roll of film around 7pm on the 4th (like 6 hours ago), and now I have developed my first roll. I was a little worried at first because I had never developed film before or anything even close.

    I mixed 1 liter of working solution of developer, indicator stop bath and fixer, and 1 quart of the Hypo Clearing Agent (enough to make a full gallon of working solution).

    Originally I had intended to wait until I had finished securing light away from my bathroom, but then tonight I discovered that my closet was even darker already, so for the first roll I decided to give it a shot. I set up my table with everything I needed in the closet, my reel and tank on the left, film, opener and scissors in the middle, and my tank lid on the right. Just as with my practice roll, the hardest part was getting the film canister open. It took a little while, but I got it (although, the canister didn’t fully survive). I popped the roll out with minimal trouble (although, it was more “springy” than my 9 year old practice roll of Kodak C-41). Cutting the leader of was easy enough, got it pretty straight too, but had to do it twice, as I didn’t get it all on the first attempt (another area the Kodak C-41 is different). I fumbled around with the reel for what seemed like 5 minutes, but was probably more like 30 seconds, trying to get the feeding started. In my trial runs in the daylight the Kodak C-41 tried to curl and refuse to go onto the reel, but in the actual loading the Fujifilm Neopan 400 there were no such problems. There was some hesitation at the end from the film being tight on the spool and of the reel getting full (practice was 24 exposures, actual is 37). Right as I was getting the reel into the tank I realized something, I could see the white hangers in the closet, and make out shapes of my shoe boxes on the shelf. “Uh oh” was my thought, I was sure that because I could see the hangers that the film had been ruined by the tiny bit of light that was coming in from one corner of the door. I decided to finish up, putting the funnel in place and the lid tightly on the tank. I moved into the light to collect myself and prepare my work area for the developing process. I mostly used my own blog entry as a guide, that and my handy stop-watch on my Casio G-Shock (I’m a nerd). I worked through the process, although partially wondering how such a crude system as a daylight developing tank could actually keep light out (since mine has the funnel thing inside for even-filling, and not the lid with the cap). I was super diligent in my agitation, which I also worried about potentially being too much agitation. I worked through the steps, pretty much worrying about light until I had finished off a full 10 minutes of fixing. After that point it was mostly just following the procedure and trying to not worry about what the final result would look like.

    I finished off by adding 8 ounces of water to the tank and adding a splash of wetting agent, then swirling it for 30 seconds. At that point I dumped the tank and pulled out the reel. I was a little scared of what I saw at first, because things looked very dark. Apparently wet film looks dark when there are multiple layers of it. I nervously pulled the film off of the reel and began to notice that my pictures were there, exactly as I had framed them over the last 30 days, almost perfect it seemed. I had a little trouble with frame 36 coming off of the reel, it tried to hang on, but I managed to right it and get all 37 off without a problem. The roll is now hanging in my bathroom from a shelf by its clips (and weights), patiently drying.

    In the morning someone will need to cut them film, then I will sleeve it and consider scanning it.

  • The Developing Process

    To get myself prepared for developing my first roll of film I am outlining the steps required here.

    Step 1:

    • Set up tank (cleaned), reel, bottle opener, film and scissors in light-proof room
    • Turn off the lights
    • Open film canister and gently remove film roll
    • Cut off half-width leader on front of roll
    • Load film on to reel
    • Cut end of film off of the roll
    • Insert reel into tank
    • Insert center column and funnel
    • Lid tank tightly
    • Turn lights back on

    Step 2:

    • Fill tank with clean water, agitate for about 1 minute.
    • Pour out the water
    • Load the developer. Start developer timer. For my Neopan 400 and my Adorama developer (which acts like LC29), the time is about 6 minutes. Tank needs to be agitated for 10 seconds or so every minute to keep fresh developer on the film.
    • At end of time, empty developer.

    Step 3:

    • Rinse the tank with fresh water once or twice
    • Pour in stop bath solution (mixed in 1/63 ratio with water for Kodak Pro Stop Bath)
    • Rinse again

    Step 4:

    • Pour in fixer (1:4 mix for Illford Rapid)
    • Fix for 5 – 10 minutes, agitate for 10 seconds every minute
    • Empty tank and rinse again

    Step 5:    

    • Washing
    • After rinsing, pour in hypo clearing agent (1:4 dilution)
    • Wash for 2 – 5 minutes
    • Rinse

    Step 6:

    • Wetting agent.
    • Pour small amount of wetting agent into tank, fill with water, agitate for 30 seconds
    • Pour out wetting agent.
    • DO NOT RINSE

    Step 7:

    • Dry.
    • Remove reel from tank
    • Remove film from reel
    • Clamp both ends of film, hang to dry
    • 4 – 8 hours

    Some details are a little sketchy, particularly the diloution stuff, but once I get closer to time for that I will work out the details.

  • Making Preparations for Developing

    I have shot almost half of my first roll of film, not a lot by any means, but I feel that I am now in a position where I should begin preparing for developing. All of my stuff is here already, but I now have to begin preparing for actually doing this. Getting all of the stuff together was no big deal, but now I’m nervous (in an excited kind of way). I have never done anything like this, and so far everything like this has been easy for me, and all of my art has been very low risk, but things could go wrong here and I have to prepare myself for that. My biggest worry at present is the fact that my developer solution doesn’t list information for my film and my developer is not listed on the master developer list; therefore, I have had to guess at the developing time for my film (guessing 6 minutes from available info). I had to locate a developing solution on the master list that matched the qualities for the film and time combinations listed on my bottle. It turns out that based on that information, my developer is a good match for Illfotec LC29 in a 1/19 mixture. My developer recommends a 1/19 mixture itself, which makes their data match even better, so I just hope that it is right. Unfortunately there is no way to tell until a roll has been developed and fixed how the timing will work out. All that can be done is a time adjustment on future rolls. Now I just have to teach myself to put film on the reel and set up some sort of orderly procedure for the developing process (I smell another software development project coming for timing the processes).

    My equipment is here.

  • ExIf 35

    With all that has been going on with ExIf 35 and the amount I have blogged about it, it has occurred to me that I haven’t really introduced the app on my blog at all, outside of the problems I have been having with getting things working exactly the way that I want.

    First, a screenshot:

    The application is designed for film photographers (me) to store information about each exposure on a roll. The original intent of the application was to simply store the information into an XML file, but after that portion of the application was finished being written I added the ability for the application to write the information in the image file for the scanned negative or print. At some point I also decided that I wanted to keep up with lens information, which of course required me to learn a new skill of putting information into the files using XMP, what a joyful experience that was. Now the application is on the path to fully utilizing XMP, including contact information (I still have to put that feature in). I am also working on utilizing some custom fields in XMP that will store the information that is specific to the film process, such as the film type, developing chemicals used and the date the roll was developed. I intend to in the future (when the application has a web presence) to post the specifications for the custom fields that I utilize. In the future I may also add functionality for managing the rolls and not just the images on the rolls.

    This is the form used to add or edit images on a roll.

    This form is used to manage the lenses available to the exposures.

    Finally, this form will be used to write the information to the JPEG files. As you can see, it also allows the inclusion or not of other information.

     

    SourceForge Project: https://sourceforge.net/projects/exif35/

    Download From: https://sourceforge.net/projects/exif35/files/ (latest has Windows icon beside it)

  • Lens Information Stored

    Finally, I have managed to store lens information in my JPEG files! It isn’t using ExIf though, because honestly, it’s way too hard and would require me learning way too much information about how the Makernote segment of ExIf works. As an alternative, I am using XMP. XMP is an Adobe developed standard based on XML that is embedded into JPG files (or as a standalone beside RAW). I am so far using two fields of XMP that come from Microsoft’s standards used for Windows Vista/7’s image management tools, those are /xmp/MicrosoftPhoto:LensManufacturer and /xmp/MicrosoftPhoto:LensModel as well as /xmp/xmp:lens and /xmp/aux:Lens. I’ve gone from having 0 places for lens information to having 3 places for lens information. At this point I am just happy it’s in there, but now that I am using XMP, I have more places to put information which means I can allow for the option of storing more information in the files. I now have intentions on letting ExIf 35 store contact information in the files when the option is selected. Additional things I would like to store is things like the chemicals used in developing and a better way to do the film information, other than just a user comment area that states “Shot on ____ film”. Because things are moving more digital, I am likely to have to write my own schema addition to XMP and store the information. It’s likely that the only thing that will read those fields is ExIf 35 itself, but I’m hopeful that if it has to be done, I might be able to convince Flickr to adopt my schema addition as well, since it is quite likely it would be the only one anywhere near supporting film information. All of this information is relevant to the image, and it would be great to get it all in.

  • ExIf Lens Information

    I think I have managed to accomplish all that I wanted with ExIf except for one thing. I still want to store lens information in the ExIf info. Unfortunately, the only place to do that is MakerNotes, and I don’t know how to work with them. It is my understanding that I would have to pick a specific set of makernotes to use for this, but I’m not even sure how to go about that. Because of the nature of my project I am not tied down to one particular set of notes, but that also means that I don’t need all of the tags included in a full set. I can’t make heads or tails out of how makernotes function. Do I have to somehow specify what the notes are? Are there internal references between the notes that tell photo viewers what each tag is? I don’t have a clue and its starting to get to me. Is it possible to create my own maker notes? My guess on that is no, since everyone seems to be desperate to track down makernotes for every major camera ever created. I feel like I am Googling in circles at the moment trying to make things work.

  • What is deserving of film?

    What images are deserving of being stored on film? As I have only taken 7 exposures of film so far I have found myself thinking about this a good bit. I don’t think I would want to us film for special occasions, as there are way too many things that could go wrong, and yet, I don’t want to use film for frivolous photography because film is expensive. I suppose this puts film in the category of “serious art photography”, but I don’t like that, as I don’t think “serious” and “art” go together, one pollutes the other. I do believe I want to use film only for art photography and not for the other purposes mentioned. I still question what I should shoot as I don’t think I have ever thought about photography in this way. With clay I have to put a lot of effort and focus into what I do because the clay is precious. When thinking about it, film is even more precious because while you can make a bowl, even though it may be a bad bowl, it still has all of the basic properties of a bowl, it can hold things. With film, a bad exposure is just that, a bad exposure. I suspect my problem here in the question of what deserves film is more or less about my compositional skill, which at the moment is pretty non-existent. With digital I shoot until things look right, with film I don’t have that option. Perhaps it’s time for me to wander around with a viewfinder to my head and answer my own question.

  • The Many Ways to Flash (or Not to Flash)

    Just thought of adding some of the more fun flash codes to my ExIf tool, but have decided against it for now unless someone directly requests it. I am perfectly happy with the binary choice of 0 (Flash did not fire) or 1 (Flash fired). All of the other options are roughly as easy from a logical standpoint, but they are much harder to pass into my existing code for encoding into the ExIf of image files.

    0000.H = Flash did not fire.

    0001.H = Flash fired.

    0005.H = Strobe return light not detected.

    0007.H = Strobe return light detected.

    0009.H = Flash fired, compulsory flash mode

    000D.H = Flash fired, compulsory flash mode, return light not detected

    000F.H = Flash fired, compulsory flash mode, return light detected

    0010.H = Flash did not fire, compulsory flash mode

    0018.H = Flash did not fire, auto mode

    0019.H = Flash fired, auto mode

    001D.H = Flash fired, auto mode, return light not detected

    001F.H = Flash fired, auto mode, return light detected

    0020.H = No flash function

    0041.H = Flash fired, red-eye reduction mode

    0045.H = Flash fired, red-eye reduction mode, return light not detected

    0047.H = Flash fired, red-eye reduction mode, return light detected

    0049.H = Flash fired, compulsory flash mode, red-eye reduction mode

    004D.H = Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected

    004F.H = Flash fired, compulsory flash mode, red-eye reduction mode, return light detected

    0059.H = Flash fired, auto mode, red-eye reduction mode

    005D.H = Flash fired, auto mode, return light not detected, red-eye reduction mode

    005F.H = Flash fired, auto mode, return light detected, red-eye reduction mode

    On the other hand, I have decided to add all 21 types of light, since that seems more useful (and is less likely to give me a headache)

    1 = Daylight

    2 = Fluorescent

    3 = Tungsten (incandescent light)

    4 = Flash

    9 = Fine weather

    10 = Cloudy weather

    11 = Shade

    12 = Daylight fluorescent (D 5700 – 7100K)

    13 = Day white fluorescent (N 4600 – 5400K)

    14 = Cool white fluorescent (W 3900 – 4500K)

    15 = White fluorescent (WW 3200 – 3700K)

    17 = Standard light A

    18 = Standard light B

    19 = Standard light C

    20 = D55

    21 = D65

    22 = D75

    23 = D50

    24 = ISO studio tungsten

    255 = other light source

  • ExIf Bytes

    I am victorious over ExIf! The documentation for ExIf overcomplicates things. While ExIf uses a lot of different types (0x1 through 0xA), it is possible to interact with most common values utilizing only 2 of these, 0x2 and 0x5. 0x2 is the null terminated string, and 0x5 is the 2 pair of Long Ints, acting as a rational. It would also seem that even though the documentation suggests that length only matters for 0x2, it cares for all of them, so it is a must to give the length of the byte array used to carry the long ints. A small error on my part was trying to convert directly from String (because I used System.Window.Forms.TextBox to get the information) to byte[] without passing through the intermediate int, or trying to convert to byte[] from double, which was very nasty. I learned these little tricks about things by reading in ExIf information in the application itself without the aid of any little helper apps that try to clean things up, it make the structure a lot more clear.

    For anyone else trying a similar exercise in futility, here is a bit of my code:


    if (Type == 0x2)

    {

    tmpProp.Len = value.Length + 1;

    value = value + nullChar;

    tmpProp.Value = ASCIIEncoding.ASCII.GetBytes(value);

    }

    else
    if (Type == 0x5)

    {

     


    Byte[] tmp1 = BitConverter.GetBytes(Convert.ToInt32(value.Split(‘/’)[0]));


    Byte[] tmp2 = BitConverter.GetBytes(Convert.ToInt32(value.Split(‘/’)[1]));


    Byte[] tmp3 = new
    Byte[tmp1.Length + tmp2.Length];

    tmp1.CopyTo(tmp3,0);

    tmp2.CopyTo(tmp3, tmp1.Length);

     

    tmpProp.Value = tmp3;

    tmpProp.Len = tmp3.Length;

    }

    I love C#, so simple, but yet such a pain in the ass, all at once.

  • Fighting ExIf

    The Exchangable Image-file Format is a nice little thing that keeps up with information relating to how a picture was taken, where it was taken, who took it and what is in the picture (as vague as how far from the camera the subject, or even detailed information about the subject). The use of ExIf is primarily linked to digital photography, but there are some instances when it doesn’t have to be. The options for storing the type of sensor method used to capture the image is certainly a digital-only field, however, there are things such as “DTDigitized”, which is “Date/Time Digitized” that would indicate that the moment the image was captured and the moment it was digitized might be more than a second apart (such as in film photography).

    I am horrible at keeping up with notes, so I am attempting to write software that will store all of my relevant information for me. The software for storing the actual notes was not a big deal, it is just a form that writes everything to a giant XML file, no complication there. Where things get tricky is the writing of data to the files themselves. First of all, with as common as ExIf information is, I assumed that there was some type of text-based value used to identify the properties, that isn’t the case, they are large integers (such as 0x8827 for “ISO Speed”). Those integers map to a specific property. The information itself is stored as individual arrays of bytes, no strings at all, everything is stored numerically. Things have to be written in a very particular way or else when the bytes are converted back to strings for reading, things don’t match up and you get off the wall values.

    Now I am fighting with C# and the .NET System.Drawing.Imaging library (specifically the PropertyValue class) in an attempt to make everything work out. I have to set like 4 values for each one ExIf property I want to use. It is going to be a very long night before this application is ready for use.