0
0과 1 사이의 double과 이미지 처리를위한 unsigned char 사이를 변환하려고합니다.C에서 float에서 unsigned char로 변환
내가 지금까지하고있는 일은 내가 수레 배열을 가지고있다.
float array[length*4]
4는 RGBA 색상 체계에서 나온 것입니다. 나는 다음이 시도 :
unsigned char newArray[4*length]
for (int i=0; i<4*length; i++){
newArray[i] = 255*array[i];
}
for (int i=0; i<10; i++){
printf("newArray: %d", newArray[i])
}
다음과 같은 출력을 얻을 :이해야 할 때
newArray: 32
newArray: 128
newArray: 131
newArray: 0
newArray: 173
newArray: 224
newArray: 56
newArray: 60
newArray: 125
newArray: 104
: 나는이 other methods을 시도
should be: 0
should be: 75
should be: 140
should be: 255
should be: 1
should be: 79
should be: 143
should be: 255
should be: 1
should be: 84
should be: 150
should be: 255
,하지만 그들은 작동하지 않습니다.
내 질문은 : float와 unsigned char 사이의 변환 방법은 무엇입니까?
편집 : 내가 한 모든 편집은
1
2
3
4
대신 1,2,3,4
했다 있도록 출력했다
for (i=0; i<length; i++) {
[[data objectAtIndex:i] getRed:&red green:&green blue:&blue alpha:&alpha];
array[i][0] = 255*red;
array[i][1] = 255*green;
array[i][2] = 255*blue;
array[i][3] = 255*alpha;
}
for (i=0; i<10; i++) {
NSLog(@"before: %f, %f, %f, %f", array[i][0],array[i][1],array[i][2],array[i][3]);
}
: 올바른 출력을 생성 된 코드는 다음입니다.
그것은 변환하는 의미이다 float와 unsigned char 사이에 더 많은 정보가 없습니다. 그것이 어떻게 개종 할 것으로 기대합니까? 정수로 반올림 된 값으로? 실제 캐릭터? – Joe
게시 한 출력에 대한 입력은 무엇입니까? – Dani
@Dani :이 값의 입력 값은 UIColor에서 가져온 RGB 값입니다. 난 원시 배열에 내 모든 데이터를 가지고, C 배열과 UIImage 사이의 변환에'float'과'unsigned char' 사이의 변환을 시도하고 있습니다. – Scott