Sending data over the Internet is not safe. A safe connections takes effort and resources.
If you manage to get your mail send via encryption, you forgot the National Security Agencies (in short NSA) that have access to the mail servers and scan your data before its gets send encrypted over the Internet.
Move your data up to an online storage leaves them in a container that is not yours alone.
But if you encrypt and decrypt data on your computer first with a strong 256bit encryption key, you can leave any security agency in the dark.
These Windows Powershell script functions makes it easy to encrypt and decrypt your files.
Since it is a symmetrical cipher, the same password is used for encryption and decryption.
If you need to pass your large secure data to another receiver, pass on the script with the new secret password and sentences using an unsymmetrical cipher or an alternative transport (mail / USB stick). The reward is a secure data transmission.
For example encrypt a file with the script:
Encrypt-File "C:\data\mydata.zip"
Send this encrypted file to an online storage or send via mail.
Receive the file and decrypt with the same script password:
Decrypt-File "C:\download\mydata.zip"
If you intent to encrypt/decrypt pictures, you can use the script plugins in cPicture.
Download
Encrypt-Decrypt Script
(remove the trailing .txt from the file once it is downloaded)
Note
Change the secret phrases and password in the script.
Select the script function you want to use at the bottom of the script or add the script to an existing upload/download process.
Für ein Kugelpanorama ist es wichtig den Null-Parallaxpunkt des Objektivs um einen festen Raumpunkt zu drehen.
Es ist nicht notwendig den Panoramakopf auszurichten, da ja die gesamte Umgebung erfasst wird.
Die Ebene des Null-Parallaxpunkt des 7.5mm Fisheye-Objektivs ist am vorderen Objektivrand.
Halter
Dieser Halter ist speziell für die Panasonic GM1:
Das ist der erste Teil der Serie um ein 360°x180°-Panoramabild mit dem 7.5mm Micro 4/3 Fisheye zu erstellen. Das Objektiv ist ein 7.5mm Vollformat-Fisheye (180° diagonale) für den Micro 4/3-Objektivanschluß mit Blenden und Entfernungsring. Das Objektiv ist rein mechanisch aufgebaut und hat keine elektrischen Kontaktpunkte zur Kamera und muß daher im A-Modus und mit der Einstellung ohne Objektiv Bilder zu machen betrieben werden.
Der Aufbau
Mit einem Fischeye-Objektiv kann ein 360°x180°-Panoramabild mit minimaler Bilderanzahl erstellt werden. Mit einem Vollformat-Fischeye werden nur 6 Bilder insgesamt benötigt: 4 Bilder horizontal , ein nach oben (Zenit) und eins nach unten (Nadir).
Das 7.5mm Fisheye:
Mit einer selbstgebauten Arca-Swiss-Verbindungsplatte wird die Kamera an den Nodal-Ninja panoramic adapter angeschlossen:
Die rote Linie stellt den Nullpunkt da, um den das Objektiv gedreht wird. Der Adapter wird entsprechend angepasst:
Ein selbstgemachter Adapter für FOTGA Micro 4/3 auf Nikon F.
Die einzelnen Schritte:
Zuerst wird ein 54mm Loch in eine 12mm Plastikplatte gebohrt:
Die Platte wird in einen Drehkopf gespannt, um die Außenseite zu erstellen:
Der untere Halter wird ausgerichtet und auf Maß gefräst:
Die Seiten werden mit einem 45°-Winkel eingekerbt:
Der 12mm Schlitz um die obere Platte zu halten:
Eine Seite wird aufgesägt, um den Adapter festklemmen zu können:
Ein 3.5mm Loch für das M5 Gewinde:
Unlike a classic 360°x180° panorama, a tower panorama is not taken from a single center point.
Imagine yourself on a tower with a viewing platform. You can walk around, but usually you cannot position yourself in the center.
The way to create a 360° tower panorama is to take multiple segments from each side. Using a fisheye to cover the entire side is not an advantage here. Taking multiple segments is better to allow for more correction of the parallax error.
Using a wide angle lens, you would take a picture from each side and each corner as illustrated below. The blue shaded triangles is the view taken from the sides and the beige shaded triangles is the view taken from the corners. The gray part is the overlap of the pictures.
If you walk around the platform of a light tower or any other round platform, you would take equiangular steps. For example, take a picture every 45°.
Depending on the angle of view of your lens, you take one or more vertical pictures.
With a 24mm lens, you would need at least two pictures at each position using landscape orientation:
Here are the segments used for this example of panorama taking from the viewing platform of a tower with a square shape using a 24mm wide angle lens.
Eight horizontal segments:
Two vertical segments:
Two additional pictures were taken to capture the tall building.
Don't worry about the zenith. Usually you cannot take a full picture of the sky above because of the tower structure but you take a picture of the sky later from any place. You only need to make sure the environment match (weather, clouds, brightness, time of day, sun position).
With all taken pictures, you stitch them like any other spherical panorama, but there will be stitching errors because of the different position of each picture. If you are using PTGui, there is a very efficient way to make it perfect by using the mask tool. Decide which part you want to keep and paint the conflicting part in red to exclude it. Don't try to correct it with too many control points and individual lens parameters. There is always the possibility to post process using an editor.
In this example, I had only three stitching errors around the center which were removed by using the mask feature in PTGui.
The base of the platform can be patched with an aerial view of the tower or simply colored.
Using the stereographic projection 'little planet' you can make an impressive view from above:
Ever run into this error message?
The error message 'Encountered an improper argument.' is from an uncaught exception in WindowProc.
In:
LRESULT CWinApp::ProcessWndProcException(CException* e, const MSG* pMsg)
e->ReportError(MB_ICONEXCLAMATION|MB_SYSTEMMODAL, nIDP);
the error message is nIDP = AFX_IDP_INTERNAL_FAILURE
:
#define AFX_IDP_INTERNAL_FAILURE 0xF108 // general failure
Usually you don't end up here. But there are cases where it happens.
I have one example which was difficult to debug:
An existing MFC based app upgraded to a ribbon control using a release build with static linking. Dynamic linked release builds and all debug builds are not affected.
It all starts at the InitInstance()
of your app when you load the main frame:
pFrame->LoadFrame(IDR_MAINFRAME,
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
NULL);
Then all the way down the call stack:
BOOL CFrameWndEx::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
BOOL CFrameWnd::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle,
CWnd* pParentWnd, CCreateContext* pContext)
BOOL CFrameWnd::Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
LPCTSTR lpszMenuName,
DWORD dwExStyle,
CCreateContext* pContext)
BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
int x, int y, int nWidth, int nHeight,
HWND hWndParent, HMENU nIDorHMenu, LPVOID lpParam)
until you reach:
ISOLATION_AWARE_INLINE HWND IsolationAwarePrivatenCv IsolationAwareCreateWindowExW(_In_ DWORD dwExStyle,_In_opt_ LPCWSTR lpClassName,_In_opt_ LPCWSTR lpWindowName,_In_ DWORD dwStyle,_In_ int X,_In_ int Y,_In_ int nWidth,_In_ int nHeight,_In_opt_ HWND hWndParent,_In_opt_ HMENU hMenu,_In_opt_ HINSTANCE hInstance,_In_opt_ LPVOID lpParam)
At this point you suddenly end up in the exception handler of the WndProc:
LRESULT AFXAPI AfxCallWndProc(CWnd* pWnd, HWND hWnd, UINT nMsg,
WPARAM wParam = 0, LPARAM lParam = 0)
All class names, handles and sizes look alright. The last message is 5, which is a WM_SIZE message with the right lParam value.
Usually you get a debug break and know why the exception was raised, but here it seemed a mystery.
But a quick compare to a sample app from the templates revealed the solution: The ribbon required additional resources in order to run in a static release build in the .rc file:
#if !defined(_AFXDLL)
#include "l.DEU\afxprint.rc" // Ressourcen für Drucken/Seitenansicht
#include "l.DEU\afxribbon.rc" // Ressourcen für MFC-Menüband und -Steuerleiste
#endif
(Remove the language prefix 'l.DEU\' with your language code if you are building another language.)