사진

반응형

 
 
 내가 구매한 제품은 5개 25100원에 샀는데 지금은 가격이 올라버렸다.
https://item.gmarket.co.kr/Item?goodscode=2919410171

G마켓-무타공 와이어 액자걸이 액자 고리 5개

36,800원

item.gmarket.co.kr

 
 원리는 집 천장 가장자리 몰딩에 클립처럼 끼워서 설치하는 방식이었는데 집에도 몰딩이 되어있었다. 그래서 옳다구나 하고 구매를 하였다. 설치 전 몰딩 두께를 미리 측정하여 적합한지 파악하는게 중요하다. 왜냐하면..

 
 
 내가 재봤을 때는 딱 알맞는 두께여서 신청을 했는데 안쪽 두께는 1.3 cm, 밑 부분은 1.2cm, 문제는 바깥 쪽 두께가 0.7cm 정도로 비대칭 형태였다. 이게 왜 문제냐면..

안쪽 1.3cm

 

밑부분 1.2cm

 

바깥쪽 0.7cm

 
 
 수직으로 비는 공간 없이 정확하게 맞물려야 하는데 양쪽이 비대칭이다보니 제대로 맞물리지 않는 다는 점이다. 그러다보니 불균형으로 제대로 고정될 수 없었다.

 

 
 
 양쪽이 균일한 베란다 샷사 쪽에 시험삼아 해봤더니 이렇게 딱 알맞게 맞물려서 안정감이 있다.

배란다 샷시에 설치한 모습

 
 

 드라이버로 더 강력하게 조이면 매달릴 수 있긴한데 일단은 손으로 조여보고 좀 당겨보았더니 이런식으로 빠져버린다. 그렇다면 액자도 얼마 못가서 떨어질 것 만 같았다. 게다가 몰딩 재질도 나무 느낌이라 손상 갈 것 같았다.

 
 
 
 길이 조정 방식은 누른 채로 길이 조절이 가능해서 편리했다.

거는 부분과 천장부분 길이 조절법

 
 
 액자 무게는 하중이 2kg 이하여야하는데 그냥 몸무게에서 액자들고 잰 무게 빼서 측정했다. 1.15kg나오니 적합하니 하나로도 충분할 것 같긴한데.. 영 불안해서 아직 액자를 걸지 못했다. 몰딩이 양쪽 길이가 균등했으면 달았을 법 한데 그게 아니라 좀 아쉽다. 그렇다고 꼭꼬핀으로 하자니 벽지 손상이 생각보다 티가 나는 것 같아서 안될 것 같다. 

반응형
반응형

 exiftool을 사용하여 사진 exif 정보가 없는 다수의 사진 파일을 하나씩 수정하고 추가하자니 많은 시간이 걸려서 검색해본 결과 bat 파일로 추가하는 방법을 시도해보았다.

참고한 블로그 링크 글. exiftool 파일 셋팅은 아래 블로그 글을 참고하면 된다.  C:\Windows 폴더에 파일만 옮겨두면 끝

 

https://blog.naver.com/dirail/220040581902

 

[ExifTool] 사진 촬영정보 (메타데이터) 수정하기

            간혹 사진을 보다보면 사진이 생성된 시간이 잘못 기록되어 있...

blog.naver.com

https://blog.naver.com/dirail/220074853011

 

[ExifTool] 배치파일로 자동화 시키기!

ExifTool을 왜 배치파일로 만들어서 쓸까요? ① 복잡한 명령어를 외우지 않아도 되니까    Ex...

blog.naver.com

 

 

 일단 exiftool 파일을 받아야 하고 bat 파일을 메모장에 생성하면 된다. 참고로 exiftoolGUI 도 설치해둔다면 exif 값을 쉽게 알아볼 수 있다. 어떤 값을 추가해야할지 보고 메모장에 명령어만 추가해주면 된다.

https://nenunena.tistory.com/50

 

디지털 사진 정보(EXIF) 편집 프로그램 (ExifTool + ExifToolGUI)

드문 경우긴 하지만 어떤 경우에 디지털 카메라로 찍은 사진의 메타데이터인 EXIF 정보를 수정해야 할 필요가 있을때가 있다. 뭐 예를 들면 포토샾으로 후보정했는데 흔적을 지우고 싶다거나. 나

nenunena.tistory.com

우측 태그네임으로 추가할 태그를 직접 추가

 위 배치 자동화 글을 토대로 명령어만 수정해보았다. 대략적인 설명은 사진 파일에 모델명을 갤럭시로 하고 싶다면 1을 입력, 애플로 하고 싶다면 2를 입력하면된다. 그리고 원하는 시간대도 형식에 맞게 입력하면 모델명과 시간이 새로 추가 또는 수정된다. 카메라 초첨 밝기 위치정보 등 나머지 값들은 임의로 집어넣었다. 빨간색으로 된 값들은 모두 위 exiftool GUI 에서 보고 추가한 값들이다. 참고로 현재 *.jpg 파일만 가능한 듯 싶다. png는 안됐음.

 

반응형

 

:top
@echo. 
@set /p dir="사진 폴더를 이 창 위로 드래그 하고 엔터치세요:"
@%dir:~1,2%
@cd %dir%
@echo. 

:camera
@set /p model="추가할 모델(ex. 갤럭시는 1, 애플은 2: "
@set /p date="날짜수정 (ex. 2019:05:01 13:45:32) : "
@echo. 
@if "%model%" == "1" (
exiftool -Make="samsung" -Model="Galaxy S23 Ultra" -ModifyDate="%date%" -GPSLatitudeRef="North" -GPSLatitude="37.511102°" -GPSLongitudeRef="East" -GPSLongitude="126.995283°" -ExposureTime="1/40" -FNumber="2.4" -ISO="400" -ShutterSpeedValue="2" -ApertureValue="2.4" -BrightnessValue="4.24" *.jpg
) else if "%model%" == "2" (
exiftool -Make="Apple" -Model="iPhone 14 Pro" -ModifyDate="%date%" -GPSLatitudeRef="North" -GPSLatitude="37.511102°" -GPSLongitudeRef="East" -GPSLongitude="126.995283°" -ExposureTime="1/40" -FNumber="2.4" -ISO="400" -ShutterSpeedValue="2" -ApertureValue="2.4" -BrightnessValue="4.24" *.jpg
)


@echo 작업 완료.
:more
@set /p more="더 작업하시겠습니까?(y or n) "
@if "%more%"=="y" goto top
@if "%more%"=="n" goto exit
@goto more

:exit
@echo. 아무키나 누르면 종료됩니다.
@pause >nul
@exit

 

exiftool_카메라 촬영일 추가.bat
0.00MB

 

 

 실행 후 사진이 들어있는 폴더를 드래그하여 cmd 창에 두면 자동으로 경로가 뜨고 엔터를 친다. 그 다음엔 원하는 모델에 따라 1 또는 2 를 치고 그 다음에는 원하는 시간을 형식에 맞게 입력하면 된다.

 

 그럼 위와 같이 다수의 파일이 업데이트 되었다는 메시지와 함께 작업 완료. 참고로 완료 후 원본파일은 자동으로 백업이 된다. 끝에 jpg_original 확장자로 변경되면서 백업되는데 확장자를 다시 jpg 바꿔주면 원본 사진을 볼 수 있다.

반응형
반응형





https://www.geoimgr.com/


위 주소로 접속하면 다음과 같은 화면이 나온다.


참고로 JPG 파일만 가능



좌측에서 마우스로 직접 위치를 지정하거나 검색해서 장소를 찾을 수 있다. 그럼 아래에 좌표가 자동으로 찍힌다.







위치정보 변경할 사진을 드래그 하여 업로드하면 아래와 같이 사진 위치정보가 노출된다.

(위치정보가 없다면 공란으로 나옴)



Write EXIF Tags 를 클릭하면 지도에 찍힌 새 좌표가 사진에 입력된다.







그리고 다운로드하면 위치정보 변경된 사진을 내려받을 수 있다.



반응형
반응형





저렇게 코스프레 분장한 사람이 친한 척하고 막 사진찍어준다 그러면 무조건 피하세요


사진 2장 찍어주고 20유로 달랍니다.


너무 비싸서 10유로 쇼부봤는데 거절하네요


처음 여행이라 아차 싶었는데 이미 찍고나서..


사진도 역광..





폰 사진 지우고 됐다 난 못준다 할 걸 뒤늦게 생각이 드는데..


20유로면 거의 3만원 돈입니다..


걍 처음 해와 여행이라 액땜했다 치고 줬어요... 소매치기보단 나으니..


액자로라도 만들어야겠네요


천사의 다리 지나 갈때 이분이 말 걸어도 쌩까고 그냥 가세요


여행 많이 다녀 보신 분들은 촉이 올겁니다.


20유로면 맛있는 걸 먹는게 낫지 사진2장으로 날려보내긴 아깝죠..


내 20유로..



혹시 이분 한국에서 보시면 제보해주세요


제가 사또복 입고 가서 같이 사진찍고 3만원 받아낼겁니다...




반응형

야 사진 찍잖아

2015. 5. 29. 21:49
반응형


저기봐



반응형

'동물농장 > 사진' 카테고리의 다른 글

위장중이냥  (0) 2015.06.01
제발 날 데려가주세요  (0) 2015.05.31
사장님 개세요~?  (0) 2015.05.19
아이 간지러  (0) 2015.05.07
배려심 쩌는 강아지들  (0) 2015.04.30
반응형





그냥 간단하게 사진 자르기 해서 이미지 넣으려고 했는데


킷캣에서 부터 팅기는 현상이 발생했다.



팅기는 영상.



정말 뜬금없다. 킷캣 전부터는 쭉 잘 되던거였는데... 


웃긴 건 이상하게 특정사진만 자르면 팅긴다. 원본사진은 100kb밖에 안되는 사진인데도 말이다.


도대체 원인 뭔지 한참을 찾아헤맸다.


어찌어찌 해결을 됐는데 완벽한 해결책은 아니다..


킷캣문제인가 해서 찾아보기도 하고..


참고한 링크들이다.


http://blog.tstore.co.kr/107


https://plus.google.com/112692779577336772166/posts/9MbmSsUcd1e


http://www.androidside.com/plugin/mobile/board.php?bo_table=B49&wr_id=81704


안드로이드 사이드 위 글을 보고 해결을 했다.


사진 크롭 코드를 보면 이런 부분이 있다.

기존 코드는 이렇게 되어있었는데


intent.putExtra("outputX", 120);

intent.putExtra("outputY", 130);


안드로이드사이드 글에서 이게 문제라는 댓글을 보았다.



그래서 저 숫자를 

intent.putExtra("outputX", 100);

intent.putExtra("outputY", 100);


100로 작게 바꿔주었다.


그랬더니?? 신기하게 팅기지가 않는다. 최소한 내 폰에서는...



그래서 임시방편으로나마 해결을 했는데 찜찜하다.

다른 폰에서는 자르기는 되는데 자른 이미지가 깨진건지 안나온다;;;



찾아보면서 얻은 결론은


 메모리 부족으로 발생하는 것이다.

 바인더 Intent에 1MB 이상의 데이터를 넘기게되면 발생할 수 있다.

보통 제공되는 크롭을 사용하게 되면 발생하므로 이미지 크롭의 경우 직접 구현해서 사용하는게 낫다는 의견

하지만 직접 구현할 능력이..;; 그리고 찾아본 예제들은 거의 다 기본 제공 크롭소스이다..



마지막으로 위 영상의 예제 코드를 올린다.

아마도 다 이 코드를 쓸 것이다. 퍼질대로 퍼진 대중적인 코드(xml은 제외)



package com.example.camera

import java.io.File;
import com.example.camera.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity implements OnClickListener {
	private ImageView mPhotoImageView;// 이미지 받기
	private ImageView foot;
	private Uri mImageCaptureUri;

	private static final int PICK_FROM_CAMERA = 0;
	private static final int PICK_FROM_ALBUM = 1;
	private static final int CROP_FROM_CAMERA = 2;
	LinearLayout bar, mother = null;
	FrameLayout container = null;
	Bitmap bm = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		Button mButton = (Button) findViewById(R.id.load);
		mPhotoImageView = (ImageView) findViewById(R.id.profile);
		mButton.setOnClickListener(this);
	}

	private void doTakePhotoAction() {
		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

		// 임시로 사용할 파일의 경로를 생성
		String url = "tmp.jpg";

		mImageCaptureUri = Uri.fromFile(new File(Environment
				.getExternalStorageDirectory(), url));

		intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
				mImageCaptureUri);

		// 특정기기에서 사진을 저장못하는 문제가 있어 다음을 주석처리 합니다.
		// intent.putExtra("return-data", true);
		startActivityForResult(intent, PICK_FROM_CAMERA);

	}

	private void doTakeAlbumAction() {
		// 앨범 호출
		Intent intent = new Intent(Intent.ACTION_PICK);
		intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
		startActivityForResult(intent, PICK_FROM_ALBUM);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (resultCode != RESULT_OK) {
			return;
		}

		switch (requestCode) {
		case CROP_FROM_CAMERA: {
			// 크롭이 된 이후의 이미지를 넘겨 받습니다.
			// 이미지뷰에 이미지를 보여준다거나 부가적인 작업 이후에
			// 임시 파일을 삭제합니다.
			final Bundle extras = data.getExtras();

			if (extras != null) {
				Bitmap photo = extras.getParcelable("data");
				mPhotoImageView.setImageBitmap(photo);
			}

			// 임시 파일 삭제
			File f = new File(mImageCaptureUri.getPath());
			if (f.exists()) {
				f.delete();
			}

			break;
		}

		case PICK_FROM_ALBUM: {
			// 이후의 처리가 카메라와 같으므로 일단 break없이 진행합니다.
			// 실제 코드에서는 좀더 합리적인 방법을 선택하시기 바랍니다.

			mImageCaptureUri = data.getData();
		}

		case PICK_FROM_CAMERA: {
			// 이미지를 가져온 이후의 리사이즈할 이미지 크기를 결정합니다.
			// 이후에 이미지 크롭 어플리케이션을 호출하게 됩니다.

			Intent intent = new Intent("com.android.camera.action.CROP");
			intent.setDataAndType(mImageCaptureUri, "image/*");

			intent.putExtra("outputX", 120);
			intent.putExtra("outputY", 130);
			// intent.putExtra("aspectX", 1);
			// intent.putExtra("aspectY", 1);
			intent.putExtra("scale", true);
			intent.putExtra("return-data", true);

			startActivityForResult(intent, CROP_FROM_CAMERA);

			break;
		}
		}
	}

	@Override
	public void onClick(View v) {
		if (v.getId() == R.id.load) {
			DialogInterface.OnClickListener cameraListener = new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					doTakePhotoAction();
				}
			};

			DialogInterface.OnClickListener albumListener = new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					doTakeAlbumAction();
				}
			};

			DialogInterface.OnClickListener cancelListener = new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					dialog.dismiss();
				}
			};

			new AlertDialog.Builder(this).setTitle("업로드할 이미지 선택")
					.setPositiveButton("사진촬영", cameraListener)
					.setNeutralButton("앨범선택", albumListener)
					.setNegativeButton("취소", cancelListener).show();

		}

	}
}




팅길 때 찍힌 로그.



12-14 20:59:51.831: E/JavaBinder(1242): !!! FAILED BINDER TRANSACTION !!!

12-14 20:59:51.831: I/ActivityManager(1242): Restarting because process died: ActivityRecord{42d64570 u0 com.example.camera/.MainActivity t1511}

12-14 20:59:51.831: D/AlwaysOnTopManagerService(1242): setRearTouchLongPress(): flag = false, mIsLongPress = false

12-14 20:59:51.851: W/WindowManager(1242): view not successfully added to wm, removing view

12-14 20:59:51.861: E/JavaBinder(1242): !!! FAILED BINDER TRANSACTION !!!

12-14 20:59:51.861: W/ActivityManager(1242): Exception when starting activity com.example.camera/.MainActivity

12-14 20:59:51.861: W/ActivityManager(1242): android.os.TransactionTooLargeException

12-14 20:59:51.861: W/ActivityManager(1242): at android.os.BinderProxy.transact(Native Method)

12-14 20:59:51.861: W/ActivityManager(1242): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:761)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:1072)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:1168)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStack.resumeTopActivityLockedInner(ActivityStack.java:2327)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1482)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStackSupervisor.resumeTopActivitiesLocked(ActivityStackSupervisor.java:2196)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1077)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:964)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:5364)

12-14 20:59:51.861: W/ActivityManager(1242): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:427)

12-14 20:59:51.861: W/ActivityManager(1242): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2159)

12-14 20:59:51.861: W/ActivityManager(1242): at android.os.Binder.execTransact(Binder.java:404)

12-14 20:59:51.861: W/ActivityManager(1242): at dalvik.system.NativeStart.run(Native Method)

12-14 20:59:51.872: D/WindowManager(1242): win:Window{435b3a88 u0 com.example.camera/com.example.camera.MainActivity}mOemFlagWin:null,mSaveOemFlags:0,mCurrentFocus:Window{449c9898 u0 com.android.gallery3d/com.android.gallery3d.filtershow.crop.CropActivity}

12-14 20:59:51.882: I/ActivityManager(1242): Start proc com.example.camera for activity com.example.camera/.MainActivity: pid=6109 uid=10007 gids={50007}

12-14 20:59:51.882: D/ActivityManager(1242): checkHideDockBarApplication.result = NOK

12-14 20:59:51.892: D/dalvikvm(6109): Late-enabling CheckJNI

12-14 20:59:51.922: D/dalvikvm(6109): Debugger has detached; object registry had 1 entries

12-14 20:59:51.922: E/JavaBinder(1242): !!! FAILED BINDER TRANSACTION !!! 


위 로그를 보고 어느 분이 달아주신 댓글..


TransactionTooLargeException 발생한거네요..
바인더 Intent에 1MB 이상의 데이터를 넘기게되면 발생할 수 있습니다.
보통 제공되는 크롭을 사용하게 되면 발생하구요.. 이미지 크롭의 경우 직접 구현해서 사용하는게 낫습니다.


나중에 좀 더 완벽한 해결책을 적용할 수 있으면 좋겠다.




반응형

나도 좀 같이 찍자고

2013. 12. 20. 11:56
반응형




혼자 찍냐 치사하게



  



반응형

'동물농장 > 사진' 카테고리의 다른 글

아싸 득점  (0) 2013.12.20
개쫄음  (0) 2013.12.20
저기 지우개 좀..  (0) 2013.12.14
눈에는 눈  (0) 2013.12.14
개매너  (0) 2013.12.14

자 여기 보세요 치즈~

2013. 9. 28. 23:00
반응형




씨익





반응형

'동물농장 > 영상' 카테고리의 다른 글

완전 귀여운 말라뮤트  (0) 2013.09.28
졸리면 자  (0) 2013.09.28
자 돈 넣고 돈 먹기~  (0) 2013.09.28
너 방금 뭐라고 했냐?  (0) 2013.09.27
힙합고양이  (0) 2013.09.27

+ Recent posts