Pion photoproduction amplitudes are calculated from a set of equations that have been derived by coupling an external photon to all places in a dressed pion-nucleon vertex. The calculation is consistent with gauge invariance, charge conservation, unitarity and covariance. To provide input to the photoproduction amplitude, a photon-nucleon vertex is calculated from a set of equations derived by complete attachment of photons to a dressed nucleon propagator. We check the accuracy of this vertex by extracting its nucleon electromagnetic form factors.