画像ファイルの暗号化

画像ファイルをプレビューなどで開いて画像を見れなくしたいです。


画像データはNSDataにエンコードして書き出してますが、

考えられるのは、NSDataを読み書きの時にシフト演算して、

データの値をずらすなどですが、やってみたところ、

型がintじゃないとかエラーが出て出来ませんでした。


何かいい方法はありませんか?

Mac mini, OS X Mountain Lion (10.8.4)

投稿日 2013/11/06 03:02

返信
返信: 8

2013/11/14 12:53 Stripe への返信

nsmutabledataであろうと、

nsdata型系は、値が直接いじれないとエラーが出てしまいます

赤いエラーなのでどうしようもないです。

ググってもまったくそれらしことはヒットしませんでした

nsdataをバイト配列に変えるって画像データは、バイト配列ですよねもともと?

以前申されたやり方でやりたいのですが、数値が操作できません

2013/11/15 04:06 キリー への返信

// dataの初期化    
NSMutableData* data = [NSMutableData dataWithCapacity:3];
NSLog(@"data = %@", data);

// dataに3バイト追加    
char a[] = {0x10, 0x11, 0x12};
[data appendBytes:a length:sizeof(a)];
NSLog(@"data = %@", data);

// dataの2バイト目を変更    
char b[] = {0xab};
[data replaceBytesInRange:NSMakeRange(1, sizeof(b)) withBytes:b];
NSLog(@"data = %@", data);

// dataの1バイト目を削除    
[data replaceBytesInRange:NSMakeRange(0, 1) withBytes:nil length:0];
NSLog(@"data = %@", data);

// dataの全バイトを反転    
char* c = data.mutableBytes;
for (NSUInteger i = 0; i < data.length; i++) {
    c[i] ^= 0xff;
}
NSLog(@"data = %@", data);


この程度のことは、簡単にできるようになりましょう。

2013/11/19 18:52 キリー への返信

ちなみにコードは、

NSImage *image = [NSImage imageNamed:@”img”];


NSData *f2Data = [image TIFFRepresentation];

NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];

f2Data = [brep representationUsingType:NSPNGFileType properties:nil];


NSString *bcPath = @”testImage”;


NSMutableData *data = [NSMutableData dataWithCapacity:sizeof(f2Data)];


[data appendData:f2Data];


char *c = data.mutableBytes;


c[0] ^= 0xff;


[data writeToFile:bcPath atomically:YES];


これで、開けない画像ファイルが出来ました

ありがとうございました

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

画像ファイルの暗号化

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。